[][src]Struct d3_core::machine_impl::Sender

pub struct Sender<T: MachineImpl> {
    pub sender: Sender<T>,
    // some fields omitted
}

Wrap the crossbeam sender to allow the executor to handle a block. This requires that a send which would block, parks the send. It also requires that prior to sending a check is made to determine if the sender is already blocked. What makes this work is that the repeat send is bound to the executor. Consequently, TLS data can be inspected to determine if we need to not complete the send.

Otherwise, the Sender is a wrapper aruond the Crossbeam sender. It intentionally limits the surface of the sender. Much of this is just boilerplate wrapping

Fields

sender: Sender<T>

Implementations

impl<T> Sender<T> where
    T: MachineImpl, 
[src]

pub fn get_id(&self) -> usize[src]

pub fn try_send(&self, msg: T) -> Result<(), TrySendError<T>>[src]

pub fn sender(&self) -> Sender<T>[src]

pub fn send(&self, msg: T) -> Result<(), SendError<T>> where
    T: MachineImpl + MachineImpl<InstructionSet = T> + Debug
[src]

pub fn send_timeout(
    &self,
    msg: T,
    timeout: Duration
) -> Result<(), SendTimeoutError<T>>
[src]

pub fn is_full(&self) -> bool[src]

pub fn len(&self) -> usize[src]

pub fn is_empty(&self) -> bool[src]

pub fn capacity(&self) -> Option<usize>[src]

Trait Implementations

impl<T> Clone for Sender<T> where
    T: MachineImpl, 
[src]

impl<T> Debug for Sender<T> where
    T: MachineImpl, 
[src]

impl<T> Eq for Sender<T> where
    T: MachineImpl, 
[src]

impl<T> PartialEq<Sender<T>> for Sender<T> where
    T: MachineImpl, 
[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for Sender<T>

impl<T> Send for Sender<T>

impl<T> Sync for Sender<T>

impl<T> Unpin for Sender<T>

impl<T> UnwindSafe for Sender<T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,