pub trait ElementControlProxyInterface: Send + Sync {
type AddDependencyResponseFut: Future<Output = Result<ElementControlAddDependencyResult, Error>> + Send;
type RemoveDependencyResponseFut: Future<Output = Result<ElementControlRemoveDependencyResult, Error>> + Send;
type RegisterDependencyTokenResponseFut: Future<Output = Result<ElementControlRegisterDependencyTokenResult, Error>> + Send;
type UnregisterDependencyTokenResponseFut: Future<Output = Result<ElementControlUnregisterDependencyTokenResult, Error>> + Send;
// Required methods
fn open_status_channel(
&self,
status_channel: ServerEnd<StatusMarker>
) -> Result<(), Error>;
fn add_dependency(
&self,
dependency_type: DependencyType,
dependent_level: u8,
requires_token: Event,
requires_level: u8
) -> Self::AddDependencyResponseFut;
fn remove_dependency(
&self,
dependency_type: DependencyType,
dependent_level: u8,
requires_token: Event,
requires_level: u8
) -> Self::RemoveDependencyResponseFut;
fn register_dependency_token(
&self,
token: Event,
dependency_type: DependencyType
) -> Self::RegisterDependencyTokenResponseFut;
fn unregister_dependency_token(
&self,
token: Event
) -> Self::UnregisterDependencyTokenResponseFut;
}