Struct async_singleflight::Group [−][src]
Group represents a class of work and creates a space in which units of work can be executed with duplicate suppression.
Implementations
impl<T> Group<T> where
T: Clone,
[src]
T: Clone,
pub fn new() -> Group<T>
[src]
Create a new Group to do work with.
pub async fn work(
&self,
key: &str,
fut: impl Future<Output = Result<T>>
) -> (Option<T>, Option<Error>, bool)
[src]
&self,
key: &str,
fut: impl Future<Output = Result<T>>
) -> (Option<T>, Option<Error>, bool)
Execute and return the value for a given function, making sure that only one operation is in-flight at a given moment. If a duplicate call comes in, that caller will wait until the original call completes and return the same value. Only owner call returns error if exists. The third return value indicates whether the call is the owner.
Trait Implementations
Auto Trait Implementations
impl<T> !RefUnwindSafe for Group<T>
impl<T> Send for Group<T> where
T: Send + Sync,
T: Send + Sync,
impl<T> Sync for Group<T> where
T: Send + Sync,
T: Send + Sync,
impl<T> Unpin for Group<T>
impl<T> !UnwindSafe for Group<T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,