Struct async_singleflight::Group[][src]

pub struct Group<T> where
    T: Clone
{ /* fields omitted */ }

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]

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]

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

impl<T: Default> Default for Group<T> where
    T: Clone
[src]

Auto Trait Implementations

impl<T> !RefUnwindSafe for Group<T>

impl<T> Send for Group<T> where
    T: Send + Sync

impl<T> Sync for Group<T> where
    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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.