Trait hyper::header::Header [] [src]

pub trait Header: 'static + HeaderClone + Send + Sync {
    fn header_name() -> &'static str
        Self: Sized
fn parse_header(raw: &Raw) -> Result<Self>
        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

Returns the name of the header field this belongs to.

This will become an associated constant once available.

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.

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).


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.