pub struct Channel<T, N: ArrayLength<Option<T>>> { /* private fields */ }Expand description
A same-producer, same-consumer channel.
Implementations§
Source§impl<T, N: ArrayLength<Option<T>>> Channel<T, N>
impl<T, N: ArrayLength<Option<T>>> Channel<T, N>
Sourcepub fn split(&mut self) -> (Sender<'_, T, N>, Receiver<'_, T, N>)
pub fn split(&mut self) -> (Sender<'_, T, N>, Receiver<'_, T, N>)
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> Freeze for Channel<T, N>
impl<T, N> RefUnwindSafe for Channel<T, N>
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>
impl<T, N> UnwindSafe for Channel<T, N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more