Struct AsyncMux

Source
pub struct AsyncMux(/* private fields */);
Expand description

Asynchronous version of Mux.

Implementations§

Source§

impl AsyncMux

Source

pub fn new_abstract() -> Result<Self>

Create a new Mux, using Linux abstract sockets.

Source

pub fn new() -> Result<Self>

Create a new AsyncMux.

This will create a temporary directory for all the sockets managed by this AsyncMux; dropping the AsyncMux removes the temporary directory.

Source

pub fn new_in<P: AsRef<Path>>(dir: P) -> Result<Self>

Create a new AsyncMux, with temporary directory under the specified path.

This will create a temporary directory for all the sockets managed by this AsyncMux; dropping the AsyncMux removes the temporary directory.

Source

pub fn make_sender(&self) -> Result<(Tag, MuxSender)>

Create a new MuxSender and associated unique Tag. Data sent via the returned MuxSender will arrive with the corresponding Tag.

Source

pub async fn read(&mut self) -> Result<TaggedData<'_>>

Return the next chunk of data, together with its tag.

This reuses a buffer managed by the AsyncMux.

Note that this provides no “EOF” indication; if no further data arrives, it will block forever. Avoid calling it after the source of the data exits. Once the source of the data exits, call read_nonblock instead, until it returns None.

Source

pub fn read_nonblock(&mut self) -> Result<Option<TaggedData<'_>>>

Return the next chunk of data, together with its tag, if available immediately, or None if the read would block.

This reuses a buffer managed by the AsyncMux.

Use this if you know no more data will get sent and you want to drain the remaining data.

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> 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