pub struct RawPooledReceiver<T: Send + 'static> { /* private fields */ }Expand description
Receives a single value from the sender connected to the same event.
Awaiting the receiver will yield either the payload of type T or a Disconnected error.
This kind of endpoint is used for events stored in a raw event pool or event lake.
Implementations§
Source§impl<T: Send + 'static> RawPooledReceiver<T>
impl<T: Send + 'static> RawPooledReceiver<T>
Sourcepub fn is_ready(&self) -> bool
pub fn is_ready(&self) -> bool
Checks whether a value is ready to be received.
§Panics
Panics if called after poll() has returned Ready.
Sourcepub fn into_value(self) -> Result<T, IntoValueError<Self>>
pub fn into_value(self) -> Result<T, IntoValueError<Self>>
Consumes the receiver and transforms it into the received value, if the value is available.
This method provides an alternative to awaiting the receiver when you want to check for
an immediately available value without blocking. It returns Ok(value) if a value has
already been sent, or returns the receiver if no value is currently available.
§Panics
Panics if the value has already been received via Future::poll().
§Examples
use events_once::{Event, IntoValueError};
#[tokio::main]
async fn main() {
let (sender, receiver) = Event::<String>::boxed();
// into_value() is designed for synchronous scenarios where you do not want to wait but
// simply want to either obtain the received value or do nothing. First, we do nothing.
//
// If no value has been sent yet, into_value() returns Err(IntoValueError::Pending(self)).
let Err(IntoValueError::Pending(receiver)) = receiver.into_value() else {
panic!(
"Expected receiver to indicate that it is still waiting for a payload to be sent."
);
};
sender.send("Hello, world!".to_string());
let message = receiver.into_value().unwrap();
println!("Received message: {message}");
}Trait Implementations§
Source§impl<T: Send + 'static> Debug for RawPooledReceiver<T>
impl<T: Send + 'static> Debug for RawPooledReceiver<T>
Source§impl<T: Send + 'static> Future for RawPooledReceiver<T>
impl<T: Send + 'static> Future for RawPooledReceiver<T>
Auto Trait Implementations§
impl<T> Freeze for RawPooledReceiver<T>
impl<T> !RefUnwindSafe for RawPooledReceiver<T>
impl<T> Send for RawPooledReceiver<T>
impl<T> !Sync for RawPooledReceiver<T>
impl<T> Unpin for RawPooledReceiver<T>
impl<T> !UnwindSafe for RawPooledReceiver<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
Source§impl<F> IntoFuture for Fwhere
F: Future,
impl<F> IntoFuture for Fwhere
F: Future,
Source§type IntoFuture = F
type IntoFuture = F
Which kind of future are we turning this into?
Source§fn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more