pub struct LabeledFuture<F> { /* private fields */ }Expand description
A future that records poll events with a source label into a shared
Trace.
Unlike TracedFuture, LabeledFuture pushes
events into a caller-supplied Trace (wrapped in Arc<Mutex<_>>),
allowing multiple labeled futures to contribute to a single trace
with a shared time origin.
If the wrapped future is dropped before completing, a final
PollResult::Cancelled event is recorded.
§Examples
use async_reify::{LabeledFuture, Trace};
let trace = Trace::shared();
let fut = LabeledFuture::new(async { 42 }, "fetch_data", trace.clone());
let val = fut.await;
assert_eq!(val, 42);
assert_eq!(
trace.lock().unwrap().events[0].label.as_deref(),
Some("fetch_data"),
);Implementations§
Source§impl<F> LabeledFuture<F>where
F: Future,
impl<F> LabeledFuture<F>where
F: Future,
Trait Implementations§
Source§impl<F> Drop for LabeledFuture<F>
impl<F> Drop for LabeledFuture<F>
Source§impl<F> Future for LabeledFuture<F>where
F: Future,
impl<F> Future for LabeledFuture<F>where
F: Future,
Auto Trait Implementations§
impl<F> Freeze for LabeledFuture<F>
impl<F> RefUnwindSafe for LabeledFuture<F>where
F: RefUnwindSafe,
impl<F> Send for LabeledFuture<F>where
F: Send,
impl<F> Sync for LabeledFuture<F>where
F: Sync,
impl<F> Unpin for LabeledFuture<F>
impl<F> UnsafeUnpin for LabeledFuture<F>
impl<F> UnwindSafe for LabeledFuture<F>where
F: UnwindSafe,
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