pub struct UlidGeneratorFuture<'a, G, ID, T, R, S>where
G: UlidGenerator<ID, T, R>,
ID: UlidId,
T: TimeSource<ID::Ty>,
R: RandSource<ID::Ty>,
S: SleepProvider,{ /* private fields */ }Expand description
A future that polls a UlidGenerator until it is ready to produce an
ID.
This future handles Pending responses by sleeping for a recommended
amount of time before polling the generator again.
Implementations§
Source§impl<'a, G, ID, T, R, S> UlidGeneratorFuture<'a, G, ID, T, R, S>where
G: UlidGenerator<ID, T, R>,
ID: UlidId,
T: TimeSource<ID::Ty>,
R: RandSource<ID::Ty>,
S: SleepProvider,
impl<'a, G, ID, T, R, S> UlidGeneratorFuture<'a, G, ID, T, R, S>where
G: UlidGenerator<ID, T, R>,
ID: UlidId,
T: TimeSource<ID::Ty>,
R: RandSource<ID::Ty>,
S: SleepProvider,
Sourcepub const fn new(generator: &'a G) -> Self
pub const fn new(generator: &'a G) -> Self
Constructs a new UlidGeneratorFuture from a given generator.
This does not immediately begin polling the generator; instead, it will
attempt to produce an ID when .poll() is called.
Trait Implementations§
Source§impl<G, ID, T, R, S> Future for UlidGeneratorFuture<'_, G, ID, T, R, S>where
G: UlidGenerator<ID, T, R>,
ID: UlidId,
T: TimeSource<ID::Ty>,
R: RandSource<ID::Ty>,
S: SleepProvider,
impl<G, ID, T, R, S> Future for UlidGeneratorFuture<'_, G, ID, T, R, S>where
G: UlidGenerator<ID, T, R>,
ID: UlidId,
T: TimeSource<ID::Ty>,
R: RandSource<ID::Ty>,
S: SleepProvider,
impl<'__pin, 'a, G, ID, T, R, S> Unpin for UlidGeneratorFuture<'a, G, ID, T, R, S>where
PinnedFieldsOf<__Origin<'__pin, 'a, G, ID, T, R, S>>: Unpin,
G: UlidGenerator<ID, T, R>,
ID: UlidId,
T: TimeSource<ID::Ty>,
R: RandSource<ID::Ty>,
S: SleepProvider,
Auto Trait Implementations§
impl<'a, G, ID, T, R, S> Freeze for UlidGeneratorFuture<'a, G, ID, T, R, S>
impl<'a, G, ID, T, R, S> RefUnwindSafe for UlidGeneratorFuture<'a, G, ID, T, R, S>where
G: RefUnwindSafe,
<S as SleepProvider>::Sleep: RefUnwindSafe,
ID: RefUnwindSafe,
T: RefUnwindSafe,
R: RefUnwindSafe,
impl<'a, G, ID, T, R, S> Send for UlidGeneratorFuture<'a, G, ID, T, R, S>
impl<'a, G, ID, T, R, S> Sync for UlidGeneratorFuture<'a, G, ID, T, R, S>
impl<'a, G, ID, T, R, S> UnwindSafe for UlidGeneratorFuture<'a, G, ID, T, R, S>where
G: RefUnwindSafe,
<S as SleepProvider>::Sleep: UnwindSafe,
ID: UnwindSafe,
T: UnwindSafe,
R: 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> FutureExt for F
impl<F> FutureExt for F
Source§fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
fn catch_unwind(self) -> CatchUnwind<Self>where
Self: Sized + UnwindSafe,
Catches panics while polling the future. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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