pub struct Sender<T> { /* private fields */ }
Expand description
The sending half of a channel.
Implementations§
Source§impl<T> Sender<T>
impl<T> Sender<T>
Sourcepub fn send(&mut self, t: T) -> Result<(), SendError<T>>
pub fn send(&mut self, t: T) -> Result<(), SendError<T>>
Send data to the corresponding Receiver
.
This may block if the underlying syscall blocks, namely if the pipe buffer is full.
§Errors
If the corresponding Receiver
is already dropped,
this method will return Err(SendError(t))
, transferring the ownership over
t
back to the caller.
§Examples
Success:
use std::thread;
use pipe_channel::*;
let (mut tx, mut rx) = channel();
let handle = thread::spawn(move || {
tx.send(35).unwrap();
tx.send(42).unwrap();
});
assert_eq!(rx.recv().unwrap(), 35);
assert_eq!(rx.recv().unwrap(), 42);
handle.join().unwrap();
Failure:
use pipe_channel::*;
use std::sync::mpsc::SendError;
use std::mem::drop;
let (mut tx, rx) = channel();
drop(rx);
assert_eq!(tx.send(42), Err(SendError(42)));
Trait Implementations§
Source§impl<T> FromRawFd for Sender<T>
impl<T> FromRawFd for Sender<T>
Source§unsafe fn from_raw_fd(fd: RawFd) -> Self
unsafe fn from_raw_fd(fd: RawFd) -> Self
Constructs a new instance of
Self
from the given raw file
descriptor. Read moreSource§impl<T> IntoRawFd for Sender<T>
impl<T> IntoRawFd for Sender<T>
Source§fn into_raw_fd(self) -> RawFd
fn into_raw_fd(self) -> RawFd
Consumes this object, returning the raw underlying file descriptor. Read more
impl<T: Send> Send for Sender<T>
Auto Trait Implementations§
impl<T> Freeze for Sender<T>
impl<T> RefUnwindSafe for Sender<T>
impl<T> !Sync for Sender<T>
impl<T> Unpin for Sender<T>
impl<T> UnwindSafe for Sender<T>
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