Trait ServerProtocol

Source
pub trait ServerProtocol<T: Transport, H>: Sized {
    // Required methods
    fn on_one_way(
        handler: &mut H,
        server: &ServerSender<T, Self>,
        ordinal: u64,
        buffer: T::RecvBuffer,
    );
    fn on_two_way(
        handler: &mut H,
        server: &ServerSender<T, Self>,
        ordinal: u64,
        buffer: T::RecvBuffer,
        responder: Responder,
    );
}
Expand description

A protocol which supports servers.

Required Methods§

Source

fn on_one_way( handler: &mut H, server: &ServerSender<T, Self>, ordinal: u64, buffer: T::RecvBuffer, )

Handles a received server one-way message with the given handler.

Source

fn on_two_way( handler: &mut H, server: &ServerSender<T, Self>, ordinal: u64, buffer: T::RecvBuffer, responder: Responder, )

Handles a received server two-way message with the given handler.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

impl<___T, ___H> ServerProtocol<___T, ___H> for Calculator
where ___T: Transport, ___H: CalculatorServerHandler<___T>, <Add as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Divide as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Binder
where ___T: Transport, ___H: BinderServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for ChildIterator
where ___T: Transport, ___H: ChildIteratorServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Controller
where ___T: Transport, ___H: ControllerServerHandler<___T>, <Start as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for EventStream
where ___T: Transport, ___H: EventStreamServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for ExecutionController
where ___T: Transport, ___H: ExecutionControllerServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Introspector
where ___T: Transport, ___H: IntrospectorServerHandler<___T>, <GetMoniker as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Namespace
where ___T: Transport, ___H: NamespaceServerHandler<___T>, <Create as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Realm
where ___T: Transport, ___H: RealmServerHandler<___T>, <OpenController as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <OpenExposedDir as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <CreateChild as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DestroyChild as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ListChildren as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Resolver
where ___T: Transport, ___H: ResolverServerHandler<___T>, <Resolve as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ResolveWithContext as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for ComponentController
where ___T: Transport, ___H: ComponentControllerServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for ComponentRunner
where ___T: Transport, ___H: ComponentRunnerServerHandler<___T>, <Start as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for TaskProvider
where ___T: Transport, ___H: TaskProviderServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for CapabilityStore
where ___T: Transport, ___H: CapabilityStoreServerHandler<___T>, <Duplicate as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Drop as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Export as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Import as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ConnectorCreate as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ConnectorOpen as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DirConnectorCreate as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DirConnectorOpen as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryCreate as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryLegacyImport as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryLegacyExport as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryInsert as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryGet as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryRemove as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryCopy as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryKeys as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryEnumerate as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DictionaryDrain as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for ConnectorRouter
where ___T: Transport, ___H: ConnectorRouterServerHandler<___T>, <Route as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DataRouter
where ___T: Transport, ___H: DataRouterServerHandler<___T>, <Route as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Dictionary
where ___T: Transport, ___H: DictionaryServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DictionaryDrainIterator
where ___T: Transport, ___H: DictionaryDrainIteratorServerHandler<___T>, <GetNext as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DictionaryEnumerateIterator
where ___T: Transport, ___H: DictionaryEnumerateIteratorServerHandler<___T>, <GetNext as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DictionaryKeysIterator
where ___T: Transport, ___H: DictionaryKeysIteratorServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DictionaryRouter
where ___T: Transport, ___H: DictionaryRouterServerHandler<___T>, <Route as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DirConnectorRouter
where ___T: Transport, ___H: DirConnectorRouterServerHandler<___T>, <Route as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DirEntryRouter
where ___T: Transport, ___H: DirEntryRouterServerHandler<___T>, <Route as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DirReceiver
where ___T: Transport, ___H: DirReceiverServerHandler<___T>, <Receive as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DirectoryRouter
where ___T: Transport, ___H: DirectoryRouterServerHandler<___T>, <Route as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Receiver
where ___T: Transport, ___H: ReceiverServerHandler<___T>, <Receive as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Connector
where ___T: Transport, ___H: ConnectorServerHandler<___T>, <Connect as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for TopologicalPath
where ___T: Transport, ___H: TopologicalPathServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for CompositeNodeManager
where ___T: Transport, ___H: CompositeNodeManagerServerHandler<___T>, <AddSpec as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Driver
where ___T: Transport, ___H: DriverServerHandler<___T>, <Start as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Node
where ___T: Transport, ___H: NodeServerHandler<___T>, <AddChild as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for NodeController
where ___T: Transport, ___H: NodeControllerServerHandler<___T>, <RequestBind as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Device
where ___T: Transport, ___H: DeviceServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for AdvisoryLocking
where ___T: Transport, ___H: AdvisoryLockingServerHandler<___T>, <AdvisoryLock as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Directory
where ___T: Transport, ___H: DirectoryServerHandler<___T>, <AdvisoryLock as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Clone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedClone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ListExtendedAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedOpen as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Open as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ReadDirents as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Link as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Unlink as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Rename as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <CreateSymlink as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Watch as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DirectoryWatcher
where ___T: Transport, ___H: DirectoryWatcherServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for ExtendedAttributeIterator
where ___T: Transport, ___H: ExtendedAttributeIteratorServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for File
where ___T: Transport, ___H: FileServerHandler<___T>, <AdvisoryLock as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <LinkInto as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Clone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedClone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ListExtendedAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Read as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Write as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Seek as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ReadAt as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <WriteAt as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Resize as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetBackingMemory as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Allocate as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <EnableVerity as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Linkable
where ___T: Transport, ___H: LinkableServerHandler<___T>, <LinkInto as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Node
where ___T: Transport, ___H: NodeServerHandler<___T>, <Clone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedClone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ListExtendedAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Readable
where ___T: Transport, ___H: ReadableServerHandler<___T>, <Read as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Symlink
where ___T: Transport, ___H: SymlinkServerHandler<___T>, <LinkInto as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Clone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedClone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <ListExtendedAttributes as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Writable
where ___T: Transport, ___H: WritableServerHandler<___T>, <Write as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Loader
where ___T: Transport, ___H: LoaderServerHandler<___T>, <LoadObject as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Config as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <Clone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Launcher
where ___T: Transport, ___H: LauncherServerHandler<___T>, <Launch as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <CreateWithoutStarting as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <AddArgs as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <AddEnvirons as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <AddNames as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <AddHandles as Method>::Request: Decode<<___T as Transport>::RecvBuffer>, <SetOptions as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Resolver
where ___T: Transport, ___H: ResolverServerHandler<___T>, <Resolve as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Cloneable
where ___T: Transport, ___H: CloneableServerHandler<___T>, <Clone as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Closeable
where ___T: Transport, ___H: CloseableServerHandler<___T>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Queryable
where ___T: Transport, ___H: QueryableServerHandler<___T>,