# Trait mcaptcha::stats::Stats

source · [−]

    pub trait Stats: Send + Sync + CloneStats {
        fn record_fetch<'life0, 'life1, 'life2, 'async_trait>(
            &'life0 self,
            d: &'life1 Data,
            key: &'life2 str
        ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
        where
            'life0: 'async_trait,
            'life1: 'async_trait,
            'life2: 'async_trait,
            Self: 'async_trait;
        fn record_solve<'life0, 'life1, 'life2, 'async_trait>(
            &'life0 self,
            d: &'life1 Data,
            key: &'life2 str
        ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
        where
            'life0: 'async_trait,
            'life1: 'async_trait,
            'life2: 'async_trait,
            Self: 'async_trait;
        fn record_confirm<'life0, 'life1, 'life2, 'async_trait>(
            &'life0 self,
            d: &'life1 Data,
            key: &'life2 str
        ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
        where
            'life0: 'async_trait,
            'life1: 'async_trait,
            'life2: 'async_trait,
            Self: 'async_trait;
        fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>(
            &'life0 self,
            d: &'life1 Data,
            user: &'life2 str,
            key: &'life3 str
        ) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
        where
            'life0: 'async_trait,
            'life1: 'async_trait,
            'life2: 'async_trait,
            'life3: 'async_trait,
            Self: 'async_trait;
    }

## Required Methods

source

#### fn record_fetch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
d: &'life1 Data,
key: &'life2 str
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,

record PoWConfig fetches

source

#### fn record_solve<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
d: &'life1 Data,
key: &'life2 str
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,

record PoWConfig solves

source

#### fn record_confirm<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
d: &'life1 Data,
key: &'life2 str
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,

record PoWConfig confirms

source

#### fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
d: &'life1 Data,
user: &'life2 str,
key: &'life3 str
) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,

fetch stats

## Implementors

source

### impl Stats for Dummy

source

### impl Stats for Real