Skip to main content

Channel

Struct Channel 

Source
pub struct Channel { /* private fields */ }
Expand description

Channel for sending commands and receiving responses.

Implementations§

Source§

impl Channel

Source

pub const EVENT_BROADCAST_BUFFER: usize = 32

How many events can be held onto before they start being dropped without being processed.

See Self::subscribe_event_broadcast() for more.

Source

pub async fn new(backend: impl ChannelBackend) -> IoResult<Self>

Create a new channel with the specified backend.

Source

pub async fn send_raw_command( &mut self, command: RawCommand, ) -> Result<RawResponse, Error>

Send a RawCommand through this channel.

This yields the RawResponse if successful.

§Errors

Errors if the backend has an IO error.

Source

pub async fn send_command<C>( &mut self, command: C, ) -> Result<C::Response, CommandError>
where C: Command,

Send a Command through this channel.

This yields the response type associated with the command.

§Errors

Errors if the backend has an IO error, or if the RawResponse represents an execution error or fails to parse into the typed response.

Source

pub fn subscribe_event_broadcast(&self) -> BroadcastReceiver<Event>

Subscribe to change events received by this channel.

This uses a tokio broadcast implementation, and has the same restrictions. This means every subscriber needs to handle an event before it is dropped, otherwise they will accumulate in the internal buffer. If the buffer’s maximum capacity is exceeded, the oldest event will be dropped, and any subscribers which have not handled it will never receive it.

Trait Implementations§

Source§

impl Debug for Channel

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more