Struct crossmist::blocking::Duplex

source ·
pub struct Duplex<S: Object, R: Object>(/* private fields */);
Expand description

A side of a bidirectional channel.

S is the type of the objects this side sends via the channel and the other side receives, R is the type of the objects the other side sends via the channel and this side receives.

Implementations§

source§

impl<S: Object, R: Object> Duplex<S, R>

source

pub fn send(&mut self, value: &S) -> Result<()>

Send a value to the other side.

source

pub fn recv(&mut self) -> Result<Option<R>>

Receive a value from the other side.

Returns Ok(None) if the other side has dropped the channel.

source

pub fn request(&mut self, value: &S) -> Result<R>

Send a value from the other side and wait for a response immediately.

If the other side closes the channel before responding, an error is returned.

source

pub fn into_sender(self) -> Sender<S>

source

pub fn into_receiver(self) -> Receiver<R>

Trait Implementations§

source§

impl<S: Object, R: Object> AsRawFd for Duplex<S, R>

Available on Unix only.
source§

fn as_raw_fd(&self) -> RawHandle

Extracts the raw file descriptor. Read more
source§

impl<S: Debug + Object, R: Debug + Object> Debug for Duplex<S, R>

source§

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

Formats the value using the given formatter. Read more
source§

impl<S: Object, R: Object> FromRawFd for Duplex<S, R>

Available on Unix only.
source§

unsafe fn from_raw_fd(fd: RawHandle) -> Self

Constructs a new instance of Self from the given raw file descriptor. Read more
source§

impl<S: Object, R: Object> IntoRawFd for Duplex<S, R>

Available on Unix only.
source§

fn into_raw_fd(self) -> RawHandle

Consumes this object, returning the raw underlying file descriptor. Read more
source§

impl<S: Object, R: Object> NonTrivialObject for Duplex<S, R>

source§

fn serialize_self_non_trivial(&self, s: &mut Serializer)

Serialize a single object into a serializer.
source§

unsafe fn deserialize_self_non_trivial(d: &mut Deserializer) -> Result<Self>

Deserialize a single object from a deserializer. Read more
source§

impl<Stream: AsyncStream, S: Object, R: Object> TryFrom<Duplex<S, R>> for Duplex<Stream, S, R>

§

type Error = Error

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

fn try_from(value: Duplex<S, R>) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<S, R> Freeze for Duplex<S, R>

§

impl<S, R> RefUnwindSafe for Duplex<S, R>

§

impl<S, R> Send for Duplex<S, R>

§

impl<S, R> Sync for Duplex<S, R>

§

impl<S, R> Unpin for Duplex<S, R>

§

impl<S, R> UnwindSafe for Duplex<S, R>

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> AsRawHandle for T
where T: AsRawFd,

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> FromRawHandle for T
where T: FromRawFd,

source§

unsafe fn from_raw_handle(handle: RawHandle) -> Self
where Self: Sized,

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> IntoRawHandle for T
where T: IntoRawFd,

source§

fn into_raw_handle(self) -> RawHandle
where Self: Sized,

source§

impl<T> Object for T

source§

fn serialize_self(&self, s: &mut Serializer)

Serialize a single object into a serializer.
source§

fn serialize_slice(elements: &[T], s: &mut Serializer)

Serialize an array of objects into a serializer.
source§

unsafe fn deserialize_self(d: &mut Deserializer) -> Result<T, Error>

Deserialize a single object from a deserializer. Read more
source§

unsafe fn deserialize_on_heap<'a>( self: *const T, d: &mut Deserializer ) -> Result<Box<dyn Object + 'a>, Error>
where T: 'a,

source§

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

§

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

§

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