pub struct ImmutableConnection<DirectoryType: Directory> { /* private fields */ }
Implementations§
Source§impl<DirectoryType: Directory> ImmutableConnection<DirectoryType>
impl<DirectoryType: Directory> ImmutableConnection<DirectoryType>
Sourcepub async fn create(
scope: ExecutionScope,
directory: Arc<DirectoryType>,
protocols: impl ProtocolsExt,
object_request: ObjectRequestRef<'_>,
) -> Result<(), Status>
pub async fn create( scope: ExecutionScope, directory: Arc<DirectoryType>, protocols: impl ProtocolsExt, object_request: ObjectRequestRef<'_>, ) -> Result<(), Status>
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>where
Transform: FnOnce(DirectoryRequestStream) -> RS,
RS: Stream<Item = Result<DirectoryRequest, Error>> + Send + 'static,
pub async fn create_transform_stream<Transform, RS>(
scope: ExecutionScope,
directory: Arc<DirectoryType>,
protocols: impl ProtocolsExt,
object_request: ObjectRequestRef<'_>,
transform: Transform,
) -> Result<(), Status>where
Transform: FnOnce(DirectoryRequestStream) -> RS,
RS: Stream<Item = Result<DirectoryRequest, Error>> + Send + 'static,
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§async fn create<'a>(
scope: ExecutionScope,
node: Arc<DirectoryType>,
protocols: impl ProtocolsExt,
object_request: ObjectRequestRef<'a>,
) -> Result<(), Status>
async fn create<'a>( scope: ExecutionScope, node: Arc<DirectoryType>, protocols: impl ProtocolsExt, object_request: ObjectRequestRef<'a>, ) -> Result<(), Status>
Creates a new connection to
node
and spawns a new Task
to run the connection.Auto Trait Implementations§
impl<DirectoryType> Freeze for ImmutableConnection<DirectoryType>
impl<DirectoryType> !RefUnwindSafe for ImmutableConnection<DirectoryType>
impl<DirectoryType> Send for ImmutableConnection<DirectoryType>
impl<DirectoryType> Sync for ImmutableConnection<DirectoryType>
impl<DirectoryType> Unpin for ImmutableConnection<DirectoryType>
impl<DirectoryType> !UnwindSafe for ImmutableConnection<DirectoryType>
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
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