Trait RequestStream

pub trait RequestStream:
    Sized
    + Send
    + Stream
    + TryStream<Error = Error>
    + Unpin {
    type Protocol: ProtocolMarker<RequestStream = Self>;
    type ControlHandle: ControlHandle;

    // Required methods
    fn control_handle(&self) -> Self::ControlHandle;
    fn from_channel(inner: Channel) -> Self;
    fn into_inner(self) -> (Arc<ServeInner>, bool);
    fn from_inner(inner: Arc<ServeInner>, is_terminated: bool) -> Self;

    // Provided method
    fn cast_stream<T>(self) -> T
       where T: RequestStream { ... }
}
Expand description

A stream of requests coming into a FIDL server over a channel.

Required Associated Types§

type Protocol: ProtocolMarker<RequestStream = Self>

The protocol which this RequestStream serves.

type ControlHandle: ControlHandle

The control handle for this RequestStream.

Required Methods§

fn control_handle(&self) -> Self::ControlHandle

Returns a copy of the ControlHandle for the given stream. This handle can be used to send events or shut down the request stream.

fn from_channel(inner: Channel) -> Self

Create a request stream from the given channel.

fn into_inner(self) -> (Arc<ServeInner>, bool)

Convert this channel into its underlying components.

fn from_inner(inner: Arc<ServeInner>, is_terminated: bool) -> Self

Create this channel from its underlying components.

Provided Methods§

fn cast_stream<T>(self) -> T
where T: RequestStream,

Convert this FIDL request stream into a request stream of another FIDL protocol.

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§