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§
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<'_>>
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.