Trait Key

Source
pub trait Key:
    Eq
    + Hash
    + Send
    + Sync {
    type Extractor;

    // Required method
    fn from_extractor(extractor: &Self::Extractor) -> Self;
}
Expand description

Trait defining the requirements for a key extractor, which is used to uniquely identify limit subjects and extract rate limit parameters dynamically in request processing.

Required Associated Types§

Source

type Extractor

The Extractor associated type represents a component capable of extracting key-specific information from request parts. This information is then used to manage and enforce rate limits dynamically within the application.

Required Methods§

Source

fn from_extractor(extractor: &Self::Extractor) -> Self

Creates an instance of Self from the provided extractor reference, allowing extraction of key data.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Key for Method

Source§

type Extractor = Method

Source§

fn from_extractor(extractor: &Self::Extractor) -> Self

Source§

impl Key for Uri

Source§

type Extractor = Uri

Source§

fn from_extractor(extractor: &Self::Extractor) -> Self

Source§

impl Key for Version

Source§

type Extractor = Version

Source§

fn from_extractor(extractor: &Self::Extractor) -> Self

Source§

impl<T0> Key for (T0,)
where T0: Key,

Source§

type Extractor = (<T0 as Key>::Extractor,)

Source§

fn from_extractor((T0): &Self::Extractor) -> Self

Source§

impl<T0, T1> Key for (T0, T1)
where T0: Key, T1: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor)

Source§

fn from_extractor((T0, T1): &Self::Extractor) -> Self

Source§

impl<T0, T1, T2> Key for (T0, T1, T2)
where T0: Key, T1: Key, T2: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor)

Source§

fn from_extractor((T0, T1, T2): &Self::Extractor) -> Self

Source§

impl<T0, T1, T2, T3> Key for (T0, T1, T2, T3)
where T0: Key, T1: Key, T2: Key, T3: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor)

Source§

fn from_extractor((T0, T1, T2, T3): &Self::Extractor) -> Self

Source§

impl<T0, T1, T2, T3, T4> Key for (T0, T1, T2, T3, T4)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor)

Source§

fn from_extractor((T0, T1, T2, T3, T4): &Self::Extractor) -> Self

Source§

impl<T0, T1, T2, T3, T4, T5> Key for (T0, T1, T2, T3, T4, T5)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key, T5: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor, <T5 as Key>::Extractor)

Source§

fn from_extractor((T0, T1, T2, T3, T4, T5): &Self::Extractor) -> Self

Source§

impl<T0, T1, T2, T3, T4, T5, T6> Key for (T0, T1, T2, T3, T4, T5, T6)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key, T5: Key, T6: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor, <T5 as Key>::Extractor, <T6 as Key>::Extractor)

Source§

fn from_extractor((T0, T1, T2, T3, T4, T5, T6): &Self::Extractor) -> Self

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Key for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key, T5: Key, T6: Key, T7: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor, <T5 as Key>::Extractor, <T6 as Key>::Extractor, <T7 as Key>::Extractor)

Source§

fn from_extractor((T0, T1, T2, T3, T4, T5, T6, T7): &Self::Extractor) -> Self

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Key for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key, T5: Key, T6: Key, T7: Key, T8: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor, <T5 as Key>::Extractor, <T6 as Key>::Extractor, <T7 as Key>::Extractor, <T8 as Key>::Extractor)

Source§

fn from_extractor( (T0, T1, T2, T3, T4, T5, T6, T7, T8): &Self::Extractor, ) -> Self

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Key for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key, T5: Key, T6: Key, T7: Key, T8: Key, T9: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor, <T5 as Key>::Extractor, <T6 as Key>::Extractor, <T7 as Key>::Extractor, <T8 as Key>::Extractor, <T9 as Key>::Extractor)

Source§

fn from_extractor( (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9): &Self::Extractor, ) -> Self

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Key for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key, T5: Key, T6: Key, T7: Key, T8: Key, T9: Key, T10: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor, <T5 as Key>::Extractor, <T6 as Key>::Extractor, <T7 as Key>::Extractor, <T8 as Key>::Extractor, <T9 as Key>::Extractor, <T10 as Key>::Extractor)

Source§

fn from_extractor( (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10): &Self::Extractor, ) -> Self

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Key for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: Key, T1: Key, T2: Key, T3: Key, T4: Key, T5: Key, T6: Key, T7: Key, T8: Key, T9: Key, T10: Key, T11: Key,

Source§

type Extractor = (<T0 as Key>::Extractor, <T1 as Key>::Extractor, <T2 as Key>::Extractor, <T3 as Key>::Extractor, <T4 as Key>::Extractor, <T5 as Key>::Extractor, <T6 as Key>::Extractor, <T7 as Key>::Extractor, <T8 as Key>::Extractor, <T9 as Key>::Extractor, <T10 as Key>::Extractor, <T11 as Key>::Extractor)

Source§

fn from_extractor( (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11): &Self::Extractor, ) -> Self

Implementors§