pub trait LifecycleControllerProxyInterface: Send + Sync {
type StartInstanceResponseFut: Future<Output = Result<LifecycleControllerStartInstanceResult, Error>> + Send;
type StartInstanceWithArgsResponseFut: Future<Output = Result<LifecycleControllerStartInstanceWithArgsResult, Error>> + Send;
type StopInstanceResponseFut: Future<Output = Result<LifecycleControllerStopInstanceResult, Error>> + Send;
type ResolveInstanceResponseFut: Future<Output = Result<LifecycleControllerResolveInstanceResult, Error>> + Send;
type UnresolveInstanceResponseFut: Future<Output = Result<LifecycleControllerUnresolveInstanceResult, Error>> + Send;
type CreateInstanceResponseFut: Future<Output = Result<LifecycleControllerCreateInstanceResult, Error>> + Send;
type DestroyInstanceResponseFut: Future<Output = Result<LifecycleControllerDestroyInstanceResult, Error>> + Send;
// Required methods
fn start_instance(
&self,
moniker: &str,
binder: ServerEnd<BinderMarker>,
) -> Self::StartInstanceResponseFut;
fn start_instance_with_args(
&self,
moniker: &str,
binder: ServerEnd<BinderMarker>,
args: StartChildArgs,
) -> Self::StartInstanceWithArgsResponseFut;
fn stop_instance(&self, moniker: &str) -> Self::StopInstanceResponseFut;
fn resolve_instance(
&self,
moniker: &str,
) -> Self::ResolveInstanceResponseFut;
fn unresolve_instance(
&self,
moniker: &str,
) -> Self::UnresolveInstanceResponseFut;
fn create_instance(
&self,
parent_moniker: &str,
collection: &CollectionRef,
decl: &Child,
args: CreateChildArgs,
) -> Self::CreateInstanceResponseFut;
fn destroy_instance(
&self,
parent_moniker: &str,
child: &ChildRef,
) -> Self::DestroyInstanceResponseFut;
}