pub trait KeyPoolStorage {
    type Key: ApiKey;
    type Domain: KeyDomain;
    type Error: Error + Sync + Send;

    // Required methods
    fn acquire_key<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S
    ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn acquire_many_keys<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S,
        number: i64
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Key>, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn flag_key<'life0, 'async_trait>(
        &'life0 self,
        key: Self::Key,
        code: u8
    ) -> Pin<Box<dyn Future<Output = Result<bool, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn store_key<'life0, 'async_trait>(
        &'life0 self,
        user_id: i32,
        key: String,
        domains: Vec<Self::Domain>
    ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn read_key<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S
    ) -> Pin<Box<dyn Future<Output = Result<Option<Self::Key>, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn read_keys<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Key>, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn remove_key<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S
    ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn add_domain_to_key<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S,
        domain: Self::Domain
    ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn remove_domain_from_key<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S,
        domain: Self::Domain
    ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn set_domains_for_key<'life0, 'async_trait, S>(
        &'life0 self,
        selector: S,
        domains: Vec<Self::Domain>
    ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>
       where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
}

Required Associated Types§

Required Methods§

source

fn acquire_key<'life0, 'async_trait, S>( &'life0 self, selector: S ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

source

fn acquire_many_keys<'life0, 'async_trait, S>( &'life0 self, selector: S, number: i64 ) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Key>, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

source

fn flag_key<'life0, 'async_trait>( &'life0 self, key: Self::Key, code: u8 ) -> Pin<Box<dyn Future<Output = Result<bool, Self::Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

source

fn store_key<'life0, 'async_trait>( &'life0 self, user_id: i32, key: String, domains: Vec<Self::Domain> ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

source

fn read_key<'life0, 'async_trait, S>( &'life0 self, selector: S ) -> Pin<Box<dyn Future<Output = Result<Option<Self::Key>, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

source

fn read_keys<'life0, 'async_trait, S>( &'life0 self, selector: S ) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Key>, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

source

fn remove_key<'life0, 'async_trait, S>( &'life0 self, selector: S ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

source

fn add_domain_to_key<'life0, 'async_trait, S>( &'life0 self, selector: S, domain: Self::Domain ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

source

fn remove_domain_from_key<'life0, 'async_trait, S>( &'life0 self, selector: S, domain: Self::Domain ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

source

fn set_domains_for_key<'life0, 'async_trait, S>( &'life0 self, selector: S, domains: Vec<Self::Domain> ) -> Pin<Box<dyn Future<Output = Result<Self::Key, Self::Error>> + Send + 'async_trait>>where S: IntoSelector<Self::Key, Self::Domain> + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§