[][src]Struct async_local_bounded_channel::Channel

pub struct Channel<T, N: ArrayLength<Option<T>>> { /* fields omitted */ }

A same-producer, same-consumer channel.

Methods

impl<T, N: ArrayLength<Option<T>>> Channel<T, N>[src]

pub fn split(&mut self) -> (Sender<T, N>, Receiver<T, N>)[src]

Split a channel into a pair of sender and receiver endpoints.

This is safe for reasons analogous to why split_at_mut works: each endpoint has exclusive access to disjoin regions within the collection. Since both endpoints must stay within the same task, they execute at any moment within one thread, so mutual exclusivity is maintained.

Auto Trait Implementations

impl<T, N> RefUnwindSafe for Channel<T, N> where
    <N as ArrayLength<Option<T>>>::ArrayType: RefUnwindSafe

impl<T, N> Send for Channel<T, N> where
    T: Send

impl<T, N> Sync for Channel<T, N> where
    T: Sync

impl<T, N> Unpin for Channel<T, N> where
    <N as ArrayLength<Option<T>>>::ArrayType: Unpin

impl<T, N> UnwindSafe for Channel<T, N> where
    <N as ArrayLength<Option<T>>>::ArrayType: UnwindSafe

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<T> From<T> for T[src]

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

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

type Output = T

Should always be Self

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.