pub trait RealmProxyInterface: Send + Sync {
type OpenControllerResponseFut: Future<Output = Result<RealmOpenControllerResult, Error>> + Send;
type OpenExposedDirResponseFut: Future<Output = Result<RealmOpenExposedDirResult, Error>> + Send;
type CreateChildResponseFut: Future<Output = Result<RealmCreateChildResult, Error>> + Send;
type DestroyChildResponseFut: Future<Output = Result<RealmDestroyChildResult, Error>> + Send;
type ListChildrenResponseFut: Future<Output = Result<RealmListChildrenResult, Error>> + Send;
// Required methods
fn open_controller(
&self,
child: &ChildRef,
controller: ServerEnd<ControllerMarker>,
) -> Self::OpenControllerResponseFut;
fn open_exposed_dir(
&self,
child: &ChildRef,
exposed_dir: ServerEnd<DirectoryMarker>,
) -> Self::OpenExposedDirResponseFut;
fn create_child(
&self,
collection: &CollectionRef,
decl: &Child,
args: CreateChildArgs,
) -> Self::CreateChildResponseFut;
fn destroy_child(&self, child: &ChildRef) -> Self::DestroyChildResponseFut;
fn list_children(
&self,
collection: &CollectionRef,
iter: ServerEnd<ChildIteratorMarker>,
) -> Self::ListChildrenResponseFut;
}