pub struct ImmutableConnection<DirectoryType: Directory> { /* private fields */ }Implementations§
Source§impl<DirectoryType: Directory> ImmutableConnection<DirectoryType>
impl<DirectoryType: Directory> ImmutableConnection<DirectoryType>
Sourcepub fn create<'a>(
scope: ExecutionScope,
directory: Arc<DirectoryType>,
protocols: impl ProtocolsExt,
object_request: ObjectRequestRef<'a>,
) -> impl Future<Output = Result<(), Status>> + 'a
pub fn create<'a>( scope: ExecutionScope, directory: Arc<DirectoryType>, protocols: impl ProtocolsExt, object_request: ObjectRequestRef<'a>, ) -> impl Future<Output = Result<(), Status>> + 'a
Creates a new connection to serve the directory. The directory will be served from a new
async Task, not from the current Task. Errors in constructing the connection are not
guaranteed to be returned, they may be sent directly to the client end of the connection.
This method should be called from within an ObjectRequest handler to ensure that errors
are sent to the client end of the connection.
Sourcepub async fn create_transform_stream<Transform, RS>(
scope: ExecutionScope,
directory: Arc<DirectoryType>,
protocols: impl ProtocolsExt,
object_request: ObjectRequestRef<'_>,
transform: Transform,
) -> Result<(), Status>
pub async fn create_transform_stream<Transform, RS>( scope: ExecutionScope, directory: Arc<DirectoryType>, protocols: impl ProtocolsExt, object_request: ObjectRequestRef<'_>, transform: Transform, ) -> Result<(), Status>
TODO(https://fxbug.dev/326626515): this is an experimental method to run a FIDL directory connection until stalled, with the purpose to cleanly stop a component. We’ll expect to revisit how this works to generalize to all connections later. Try not to use this function for other purposes.
Trait Implementations§
Source§impl<DirectoryType: Directory> ConnectionCreator<DirectoryType> for ImmutableConnection<DirectoryType>
impl<DirectoryType: Directory> ConnectionCreator<DirectoryType> for ImmutableConnection<DirectoryType>
Source§fn create<'a>(
scope: ExecutionScope,
node: Arc<DirectoryType>,
protocols: impl ProtocolsExt,
object_request: ObjectRequestRef<'a>,
) -> impl Future<Output = Result<(), Status>> + 'a
fn create<'a>( scope: ExecutionScope, node: Arc<DirectoryType>, protocols: impl ProtocolsExt, object_request: ObjectRequestRef<'a>, ) -> impl Future<Output = Result<(), Status>> + 'a
Creates a new connection to
node and spawns a new Task to run the connection.Auto Trait Implementations§
impl<DirectoryType> !RefUnwindSafe for ImmutableConnection<DirectoryType>
impl<DirectoryType> !UnwindSafe for ImmutableConnection<DirectoryType>
impl<DirectoryType> Freeze for ImmutableConnection<DirectoryType>where
BaseConnection<DirectoryType>: Freeze,
impl<DirectoryType> Send for ImmutableConnection<DirectoryType>where
BaseConnection<DirectoryType>: Send,
impl<DirectoryType> Sync for ImmutableConnection<DirectoryType>where
BaseConnection<DirectoryType>: Sync,
impl<DirectoryType> Unpin for ImmutableConnection<DirectoryType>where
BaseConnection<DirectoryType>: Unpin,
impl<DirectoryType> UnsafeUnpin for ImmutableConnection<DirectoryType>where
BaseConnection<DirectoryType>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more