Trait hyper::header::Header
[−]
[src]
pub trait Header: 'static + HeaderClone + Send + Sync {
fn header_name() -> &'static str
where
Self: Sized;
fn parse_header(raw: &Raw) -> Result<Self>
where
Self: Sized;
fn fmt_header(&self, f: &mut Formatter) -> Result;
}A trait for any object that will represent a header field and value.
This trait represents the construction and identification of headers, and contains trait-object unsafe methods.
Required Methods
fn header_name() -> &'static str where
Self: Sized,
Self: Sized,
Returns the name of the header field this belongs to.
This will become an associated constant once available.
fn parse_header(raw: &Raw) -> Result<Self> where
Self: Sized,
Self: Sized,
Parse a header from a raw stream of bytes.
It's possible that a request can include a header field more than once,
and in that case, the slice will have a length greater than 1. However,
it's not necessarily the case that a Header is allowed to have more
than one field value. If that's the case, you should return None
if raw.len() > 1.
fn fmt_header(&self, f: &mut Formatter) -> Result
Format a header to outgoing stream.
Most headers should be formatted on one line, and so a common pattern
would be to implement std::fmt::Display for this type as well, and
then just call f.fmt_line(self).
Note
This has the ability to format a header over multiple lines.
The main example here is Set-Cookie, which requires that every
cookie being set be specified in a separate line. Almost every other
case should only format as 1 single line.
Implementors
impl Header for AcceptCharsetimpl Header for AcceptEncodingimpl Header for AcceptLanguageimpl Header for AcceptRangesimpl Header for Acceptimpl Header for AccessControlAllowCredentialsimpl Header for AccessControlAllowHeadersimpl Header for AccessControlAllowMethodsimpl Header for AccessControlAllowOriginimpl Header for AccessControlExposeHeadersimpl Header for AccessControlMaxAgeimpl Header for AccessControlRequestHeadersimpl Header for AccessControlRequestMethodimpl Header for Allowimpl<S: Scheme + Any> Header for Authorization<S> where
<S as FromStr>::Err: 'static,impl Header for CacheControlimpl Header for Connectionimpl Header for ContentDispositionimpl Header for ContentEncodingimpl Header for ContentLanguageimpl Header for ContentLengthimpl Header for ContentLocationimpl Header for ContentRangeimpl Header for ContentTypeimpl Header for Cookieimpl Header for Dateimpl Header for ETagimpl Header for Expectimpl Header for Expiresimpl Header for Fromimpl Header for Hostimpl Header for IfMatchimpl Header for IfModifiedSinceimpl Header for IfNoneMatchimpl Header for IfRangeimpl Header for IfUnmodifiedSinceimpl Header for LastEventIdimpl Header for LastModifiedimpl Header for Linkimpl Header for Locationimpl Header for Originimpl Header for Pragmaimpl Header for Preferimpl Header for PreferenceAppliedimpl<S: Scheme + Any> Header for ProxyAuthorization<S> where
<S as FromStr>::Err: 'static,impl Header for Rangeimpl Header for Refererimpl Header for ReferrerPolicyimpl Header for RetryAfterimpl Header for Serverimpl Header for SetCookieimpl Header for StrictTransportSecurityimpl Header for Teimpl Header for TransferEncodingimpl Header for Upgradeimpl Header for UserAgentimpl Header for Varyimpl Header for Warning