Trait ClientProtocol

pub trait ClientProtocol<T, H>: Sized
where T: Transport,
{ // Required method fn on_event( handler: &mut H, sender: &ClientSender<T, Self>, ordinal: u64, buffer: <T as Transport>::RecvBuffer, ); }
Expand description

A protocol which supports clients.

Required Methods§

fn on_event( handler: &mut H, sender: &ClientSender<T, Self>, ordinal: u64, buffer: <T as Transport>::RecvBuffer, )

Handles a received client event 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> ClientProtocol<___T, ___H> for Calculator

impl<___T, ___H> ClientProtocol<___T, ___H> for Binder
where ___T: Transport, ___H: BinderClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for ChildIterator
where ___T: Transport, ___H: ChildIteratorClientHandler<___T>, <Next as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Controller
where ___T: Transport, ___H: ControllerClientHandler<___T>, <Start as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <IsStarted as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetExposedDictionary as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Destroy as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for EventStream
where ___T: Transport, ___H: EventStreamClientHandler<___T>, <GetNext as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for ExecutionController
where ___T: Transport, ___H: ExecutionControllerClientHandler<___T>, <OnStop as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Introspector
where ___T: Transport, ___H: IntrospectorClientHandler<___T>, <GetMoniker as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Namespace
where ___T: Transport, ___H: NamespaceClientHandler<___T>, <Create as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Realm
where ___T: Transport, ___H: RealmClientHandler<___T>, <OpenController as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OpenExposedDir as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <CreateChild as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DestroyChild as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <ListChildren as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetResolvedInfo as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Resolver
where ___T: Transport, ___H: ResolverClientHandler<___T>, <Resolve as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <ResolveWithContext as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for ComponentController
where ___T: Transport, ___H: ComponentControllerClientHandler<___T>, <OnPublishDiagnostics as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnEscrow as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnStop as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for ComponentRunner
where ___T: Transport, ___H: ComponentRunnerClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for TaskProvider
where ___T: Transport, ___H: TaskProviderClientHandler<___T>, <GetJob as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

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

impl<___T, ___H> ClientProtocol<___T, ___H> for ConnectorRouter
where ___T: Transport, ___H: ConnectorRouterClientHandler<___T>, <Route as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DataRouter
where ___T: Transport, ___H: DataRouterClientHandler<___T>, <Route as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Dictionary
where ___T: Transport, ___H: DictionaryClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DictionaryDrainIterator
where ___T: Transport, ___H: DictionaryDrainIteratorClientHandler<___T>, <GetNext as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DictionaryEnumerateIterator
where ___T: Transport, ___H: DictionaryEnumerateIteratorClientHandler<___T>, <GetNext as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DictionaryKeysIterator
where ___T: Transport, ___H: DictionaryKeysIteratorClientHandler<___T>, <GetNext as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DictionaryRouter
where ___T: Transport, ___H: DictionaryRouterClientHandler<___T>, <Route as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DirConnectorRouter
where ___T: Transport, ___H: DirConnectorRouterClientHandler<___T>, <Route as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DirEntryRouter
where ___T: Transport, ___H: DirEntryRouterClientHandler<___T>, <Route as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DirReceiver
where ___T: Transport, ___H: DirReceiverClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DirectoryRouter
where ___T: Transport, ___H: DirectoryRouterClientHandler<___T>, <Route as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Receiver
where ___T: Transport, ___H: ReceiverClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Connector
where ___T: Transport, ___H: ConnectorClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for TopologicalPath
where ___T: Transport, ___H: TopologicalPathClientHandler<___T>, <GetTopologicalPath as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for CompositeNodeManager
where ___T: Transport, ___H: CompositeNodeManagerClientHandler<___T>, <AddSpec as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Driver
where ___T: Transport, ___H: DriverClientHandler<___T>, <Start as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Node
where ___T: Transport, ___H: NodeClientHandler<___T>, <AddChild as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for NodeController
where ___T: Transport, ___H: NodeControllerClientHandler<___T>, <RequestBind as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnBind as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Device
where ___T: Transport, ___H: DeviceClientHandler<___T>, <GetHardwareId as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetEvent as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for AdvisoryLocking
where ___T: Transport, ___H: AdvisoryLockingClientHandler<___T>, <AdvisoryLock as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Directory
where ___T: Transport, ___H: DirectoryClientHandler<___T>, <AdvisoryLock as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Close as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Query as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnOpen as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedGetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <QueryFilesystem as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnRepresentation as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetConnectionInfo as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Sync as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <ReadDirents as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Rewind as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetToken as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Link as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Unlink as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Rename as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <CreateSymlink as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Watch as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for DirectoryWatcher
where ___T: Transport, ___H: DirectoryWatcherClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for ExtendedAttributeIterator
where ___T: Transport, ___H: ExtendedAttributeIteratorClientHandler<___T>, <GetNext as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for File
where ___T: Transport, ___H: FileClientHandler<___T>, <AdvisoryLock as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <LinkInto as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Close as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Query as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnOpen as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedGetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <QueryFilesystem as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnRepresentation as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetConnectionInfo as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Sync as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Read as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Write as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Describe as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Seek as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <ReadAt as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <WriteAt as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Resize as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetBackingMemory as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Allocate as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <EnableVerity as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Linkable
where ___T: Transport, ___H: LinkableClientHandler<___T>, <LinkInto as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Node
where ___T: Transport, ___H: NodeClientHandler<___T>, <Close as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Query as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnOpen as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedGetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <QueryFilesystem as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnRepresentation as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetConnectionInfo as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Sync as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Readable
where ___T: Transport, ___H: ReadableClientHandler<___T>, <Read as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Symlink
where ___T: Transport, ___H: SymlinkClientHandler<___T>, <LinkInto as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Close as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Query as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnOpen as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetAttr as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedGetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <DeprecatedSetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetFlags as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <QueryFilesystem as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <OnRepresentation as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetConnectionInfo as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <UpdateAttributes as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Sync as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <GetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <SetExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <RemoveExtendedAttribute as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Describe as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Writable
where ___T: Transport, ___H: WritableClientHandler<___T>, <Write as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Loader
where ___T: Transport, ___H: LoaderClientHandler<___T>, <LoadObject as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Config as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <Clone as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Launcher
where ___T: Transport, ___H: LauncherClientHandler<___T>, <Launch as Method>::Response: Decode<<___T as Transport>::RecvBuffer>, <CreateWithoutStarting as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Resolver
where ___T: Transport, ___H: ResolverClientHandler<___T>, <Resolve as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Cloneable
where ___T: Transport, ___H: CloneableClientHandler<___T>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Closeable
where ___T: Transport, ___H: CloseableClientHandler<___T>, <Close as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,

impl<___T, ___H> ClientProtocol<___T, ___H> for Queryable
where ___T: Transport, ___H: QueryableClientHandler<___T>, <Query as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,