Struct Mux

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

A Mux provides a single receive end and multiple send ends. Data sent to any of the send ends comes out the receive end, in order, tagged by the sender.

Mux implements AsFd solely to support polling the underlying file descriptor for data to read. Always use Mux to perform the actual read.

Implementations§

Source§

impl Mux

Source

pub fn new_abstract() -> Result<Self>

Create a new Mux, using Linux abstract sockets.

Source

pub fn new() -> Result<Self>

Create a new Mux.

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

Source

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

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

This will create a temporary directory for all the sockets managed by this Mux; dropping the Mux 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 fn read(&mut self) -> Result<TaggedData<'_>>

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

This reuses a buffer managed by the Mux.

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.

Trait Implementations§

Source§

impl AsFd for Mux

Source§

fn as_fd(&self) -> BorrowedFd<'_>

Borrows the file descriptor. Read more
Source§

impl AsRawFd for Mux

Source§

fn as_raw_fd(&self) -> RawFd

Extracts the raw file descriptor. Read more

Auto Trait Implementations§

§

impl Freeze for Mux

§

impl RefUnwindSafe for Mux

§

impl Send for Mux

§

impl Sync for Mux

§

impl Unpin for Mux

§

impl UnwindSafe for Mux

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> AsSource for T
where T: AsFd,

Source§

fn source(&self) -> BorrowedFd<'_>

Returns the borrowed file descriptor.
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