Trait ServerProtocol

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

A protocol which supports servers.

Required Methods§

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

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

fn on_two_way( handler: &mut H, server: &ServerSender<T, Self>, ordinal: u64, buffer: <T as Transport>::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 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>, WireControllerStartRequest: 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>, WireIntrospectorGetMonikerRequest: Decode<<___T as Transport>::RecvBuffer>,

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

impl<___T, ___H> ServerProtocol<___T, ___H> for Realm
where ___T: Transport, ___H: RealmServerHandler<___T>, WireRealmOpenControllerRequest: Decode<<___T as Transport>::RecvBuffer>, WireRealmOpenExposedDirRequest: Decode<<___T as Transport>::RecvBuffer>, WireRealmCreateChildRequest: Decode<<___T as Transport>::RecvBuffer>, WireRealmDestroyChildRequest: Decode<<___T as Transport>::RecvBuffer>, WireRealmListChildrenRequest: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Resolver
where ___T: Transport, ___H: ResolverServerHandler<___T>, WireResolverResolveRequest: Decode<<___T as Transport>::RecvBuffer>, WireResolverResolveWithContextRequest: 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>, WireComponentRunnerStartRequest: 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>, WireCapabilityStoreDuplicateRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDropRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreExportRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreImportRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreConnectorCreateRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreConnectorOpenRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDirConnectorCreateRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDirConnectorOpenRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryCreateRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryLegacyImportRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryLegacyExportRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryInsertRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryGetRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryRemoveRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryCopyRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryKeysRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryEnumerateRequest: Decode<<___T as Transport>::RecvBuffer>, WireCapabilityStoreDictionaryDrainRequest: Decode<<___T as Transport>::RecvBuffer>,

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

impl<___T, ___H> ServerProtocol<___T, ___H> for DataRouter
where ___T: Transport, ___H: DataRouterServerHandler<___T>, WireRouteRequest: 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>, WireDictionaryDrainIteratorGetNextRequest: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for DictionaryEnumerateIterator
where ___T: Transport, ___H: DictionaryEnumerateIteratorServerHandler<___T>, WireDictionaryEnumerateIteratorGetNextRequest: 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>, WireRouteRequest: Decode<<___T as Transport>::RecvBuffer>,

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

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

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

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

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

impl<___T, ___H> ServerProtocol<___T, ___H> for Connector
where ___T: Transport, ___H: ConnectorServerHandler<___T>, WireConnectorConnectRequest: 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>, WireCompositeNodeSpec: Decode<<___T as Transport>::RecvBuffer>,

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

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

impl<___T, ___H> ServerProtocol<___T, ___H> for NodeController
where ___T: Transport, ___H: NodeControllerServerHandler<___T>, WireNodeControllerRequestBindRequest: 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>, WireAdvisoryLockingAdvisoryLockRequest: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Directory
where ___T: Transport, ___H: DirectoryServerHandler<___T>, WireAdvisoryLockingAdvisoryLockRequest: Decode<<___T as Transport>::RecvBuffer>, WireCloneableCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetAttrRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireMutableNodeAttributes: Decode<<___T as Transport>::RecvBuffer>, WireNodeListExtendedAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeRemoveExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryDeprecatedOpenRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryOpenRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryReadDirentsRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryLinkRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryUnlinkRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryRenameRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryCreateSymlinkRequest: Decode<<___T as Transport>::RecvBuffer>, WireDirectoryWatchRequest: 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>, WireAdvisoryLockingAdvisoryLockRequest: Decode<<___T as Transport>::RecvBuffer>, WireLinkableLinkIntoRequest: Decode<<___T as Transport>::RecvBuffer>, WireCloneableCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetAttrRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireMutableNodeAttributes: Decode<<___T as Transport>::RecvBuffer>, WireNodeListExtendedAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeRemoveExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireReadableReadRequest: Decode<<___T as Transport>::RecvBuffer>, WireWritableWriteRequest: Decode<<___T as Transport>::RecvBuffer>, WireFileSeekRequest: Decode<<___T as Transport>::RecvBuffer>, WireFileReadAtRequest: Decode<<___T as Transport>::RecvBuffer>, WireFileWriteAtRequest: Decode<<___T as Transport>::RecvBuffer>, WireFileResizeRequest: Decode<<___T as Transport>::RecvBuffer>, WireFileGetBackingMemoryRequest: Decode<<___T as Transport>::RecvBuffer>, WireFileAllocateRequest: Decode<<___T as Transport>::RecvBuffer>, WireFileEnableVerityRequest: Decode<<___T as Transport>::RecvBuffer>,

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

impl<___T, ___H> ServerProtocol<___T, ___H> for Node
where ___T: Transport, ___H: NodeServerHandler<___T>, WireCloneableCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetAttrRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireMutableNodeAttributes: Decode<<___T as Transport>::RecvBuffer>, WireNodeListExtendedAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeRemoveExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>,

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

impl<___T, ___H> ServerProtocol<___T, ___H> for Symlink
where ___T: Transport, ___H: SymlinkServerHandler<___T>, WireLinkableLinkIntoRequest: Decode<<___T as Transport>::RecvBuffer>, WireCloneableCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedCloneRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetAttrRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeDeprecatedSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetFlagsRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireMutableNodeAttributes: Decode<<___T as Transport>::RecvBuffer>, WireNodeListExtendedAttributesRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeGetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeSetExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>, WireNodeRemoveExtendedAttributeRequest: Decode<<___T as Transport>::RecvBuffer>,

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

impl<___T, ___H> ServerProtocol<___T, ___H> for Loader
where ___T: Transport, ___H: LoaderServerHandler<___T>, WireLoaderLoadObjectRequest: Decode<<___T as Transport>::RecvBuffer>, WireLoaderConfigRequest: Decode<<___T as Transport>::RecvBuffer>, WireLoaderCloneRequest: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ServerProtocol<___T, ___H> for Launcher
where ___T: Transport, ___H: LauncherServerHandler<___T>, WireLauncherLaunchRequest: Decode<<___T as Transport>::RecvBuffer>, WireLauncherCreateWithoutStartingRequest: Decode<<___T as Transport>::RecvBuffer>, WireLauncherAddArgsRequest: Decode<<___T as Transport>::RecvBuffer>, WireLauncherAddEnvironsRequest: Decode<<___T as Transport>::RecvBuffer>, WireLauncherAddNamesRequest: Decode<<___T as Transport>::RecvBuffer>, WireLauncherAddHandlesRequest: Decode<<___T as Transport>::RecvBuffer>, WireLauncherSetOptionsRequest: Decode<<___T as Transport>::RecvBuffer>,

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

impl<___T, ___H> ServerProtocol<___T, ___H> for Cloneable
where ___T: Transport, ___H: CloneableServerHandler<___T>, WireCloneableCloneRequest: 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>,