Trait RequestDataProvider

Source
pub trait RequestDataProvider {
    const METHOD_KINDS: DataKinds;
    const URI_KINDS: DataKinds;
    const HEADER_KINDS: DataKinds;

    // Required methods
    fn time_received(&self) -> Option<SystemTime>;
    fn http_version(&self) -> Option<HttpVersion>;
    fn body(&self) -> Option<impl Body>;
    fn provide_method<'s>(&'s self, dk: DataKind) -> Option<MethodData<'s>>;
    fn provide_uri<'s>(&'s self, dk: DataKind) -> Option<UriData<'s>>;
    fn provide_headers<'s>(&'s self, dk: DataKind) -> Option<HeaderData<'s>>;

    // Provided methods
    fn provide_preferred_method(
        &self,
        prefs: &DataKindPreference,
    ) -> Option<MethodData<'_>> { ... }
    fn provide_preferred_uri(
        &self,
        prefs: &DataKindPreference,
    ) -> Option<UriData<'_>> { ... }
    fn provide_preferred_headers(
        &self,
        prefs: &DataKindPreference,
    ) -> Option<HeaderData<'_>> { ... }
}

Required Associated Constants§

Required Methods§

Source

fn time_received(&self) -> Option<SystemTime>

Source

fn http_version(&self) -> Option<HttpVersion>

Source

fn body(&self) -> Option<impl Body>

Source

fn provide_method<'s>(&'s self, dk: DataKind) -> Option<MethodData<'s>>

Source

fn provide_uri<'s>(&'s self, dk: DataKind) -> Option<UriData<'s>>

Source

fn provide_headers<'s>(&'s self, dk: DataKind) -> Option<HeaderData<'s>>

Provided Methods§

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.

Implementors§