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 + Send + Sync>;
fn provide_method(&self, dk: DataKind) -> Option<MethodData<'_>>;
fn provide_uri(&self, dk: DataKind) -> Option<UriData<'_>>;
fn provide_headers(&self, dk: DataKind) -> Option<HeaderData<'_>>;
// 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 + Send + Sync>
fn provide_method(&self, dk: DataKind) -> Option<MethodData<'_>>
fn provide_uri(&self, dk: DataKind) -> Option<UriData<'_>>
fn provide_headers(&self, dk: DataKind) -> Option<HeaderData<'_>>
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.