Extractor

Trait Extractor 

Source
pub trait Extractor:
    Sized
    + Send
    + Sync
    + 'static {
    type Error: HttpError;

    // Required method
    fn extract(
        request: &mut Request,
    ) -> impl Future<Output = Result<Self, Self::Error>> + Send;
}
Expand description

Extract a object from request,always is the header,body value,etc.

Required Associated Types§

Source

type Error: HttpError

Error type returned when extraction fails.

Required Methods§

Source

fn extract( request: &mut Request, ) -> impl Future<Output = Result<Self, Self::Error>> + Send

Read the request and parse a value.

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 Extractor for ()

Source§

type Error = TupleExtractorError

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl Extractor for Bytes

Source§

type Error = InvalidBody

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl Extractor for ByteStr

Source§

type Error = InvalidBody

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send> Extractor for (T0,)

Source§

type Error = TupleExtractorError<T0>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send> Extractor for (T0, T1)

Source§

type Error = TupleExtractorError<T0, T1>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send> Extractor for (T0, T1, T2)

Source§

type Error = TupleExtractorError<T0, T1, T2>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send> Extractor for (T0, T1, T2, T3)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send> Extractor for (T0, T1, T2, T3, T4)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send, T7: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send, T7: Extractor + Send, T8: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7, T8>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send, T7: Extractor + Send, T8: Extractor + Send, T9: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send, T7: Extractor + Send, T8: Extractor + Send, T9: Extractor + Send, T10: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

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

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send, T7: Extractor + Send, T8: Extractor + Send, T9: Extractor + Send, T10: Extractor + Send, T11: Extractor + Send, T12: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send, T7: Extractor + Send, T8: Extractor + Send, T9: Extractor + Send, T10: Extractor + Send, T11: Extractor + Send, T12: Extractor + Send, T13: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T0: Extractor + Send, T1: Extractor + Send, T2: Extractor + Send, T3: Extractor + Send, T4: Extractor + Send, T5: Extractor + Send, T6: Extractor + Send, T7: Extractor + Send, T8: Extractor + Send, T9: Extractor + Send, T10: Extractor + Send, T11: Extractor + Send, T12: Extractor + Send, T13: Extractor + Send, T14: Extractor + Send> Extractor for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)

Source§

type Error = TupleExtractorError<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T: Extractor> Extractor for Option<T>

Source§

type Error = Infallible

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Source§

impl<T: Extractor> Extractor for Result<T, BoxHttpError>

Source§

type Error = Infallible

Source§

async fn extract(request: &mut Request) -> Result<Self, Self::Error>

Implementors§