GeezerVison is showing doc.rust-lang.org — RecvTimeoutError in std::sync::oneshot - Rust pub enum RecvTimeoutError<T> {
Timeout(Receiver<T>),
Disconnected,
}
🔬This is a nightly-only experimental API. (oneshot_channel #143674) Expand descriptionAn error returned from the recv_timeout or
recv_deadline methods.
§Examples
Usage of this error is similar to TryRecvError.
#![feature(oneshot_channel)]
use std::sync::oneshot::{self, RecvTimeoutError};
use std::thread;
use std::time::Duration;
let (sender, receiver) = oneshot::channel();
let send_failure = thread::spawn(move || {
// Simulate a long computation that takes longer than our timeout.
thread::sleep(Duration::from_millis(250));
// This will likely fail to send because we drop the receiver in the main thread.
sender.send("Goodbye!".to_string()).unwrap();
});
// Try to receive the message with a short timeout.
match receiver.recv_timeout(Duration::from_millis(10)) {
Ok(msg) => println!("Received: {}", msg),
Err(RecvTimeoutError::Timeout(rx)) => {
println!("Timed out waiting for message!");
// Note that you can reuse the receiver without dropping it.
drop(rx);
},
Err(RecvTimeoutError::Disconnected) => println!("Sender dropped!"),
}
send_failure.join().unwrap_err();
Variants§🔬This is a nightly-only experimental API. (oneshot_channel #143674) The Sender has not sent a message yet, but it might in the future (as it has not yet
disconnected). This variant contains the Receiver that either
recv_timeout or recv_deadline took
ownership over.
🔬This is a nightly-only experimental API. (oneshot_channel #143674) The corresponding Sender half of this channel has become disconnected, and there will
never be any more data sent over the channel.
Trait Implementations§
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Returns the lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access #99301) Provides type-based access to context intended for error reports. Read more
Converts a RecvError into a RecvTimeoutError.
This conversion always returns RecvTimeoutError::Disconnected.
No data is allocated on the heap.
Auto Trait Implementations§Blanket Implementations§
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Returns the argument unchanged.
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion. |