refactor(headers): Introduce header!() macro, improve documentation
The new macro handles single value headers, list headers, and list headers with at least one item. It creates the item for the header and contains its documentation. The new macro allows handling more header cases in the future, it will also be possible to include tests inside the macro. BREAKING CHANGE: Removed impl_header!() and impl_list_header!() macros, use new header!() macro.
This commit is contained in:
@@ -1,9 +1,21 @@
|
||||
use header::HttpDate;
|
||||
|
||||
/// The `Expires` header field.
|
||||
#[derive(Copy, PartialEq, Clone, Debug)]
|
||||
pub struct Expires(pub HttpDate);
|
||||
impl_header!(Expires, "Expires", HttpDate);
|
||||
header! {
|
||||
#[doc="`Expires` header, defined in [RFC7234](http://tools.ietf.org/html/rfc7234#section-5.3)"]
|
||||
#[doc=""]
|
||||
#[doc="The `Expires` header field gives the date/time after which the"]
|
||||
#[doc="response is considered stale."]
|
||||
#[doc=""]
|
||||
#[doc="The presence of an Expires field does not imply that the original"]
|
||||
#[doc="resource will change or cease to exist at, before, or after that"]
|
||||
#[doc="time."]
|
||||
#[doc=""]
|
||||
#[doc="# ABNF"]
|
||||
#[doc="```plain"]
|
||||
#[doc="Expires = HTTP-date"]
|
||||
#[doc="```"]
|
||||
(Expires, "Expires") => [HttpDate]
|
||||
}
|
||||
|
||||
bench_header!(imf_fixdate, Expires, { vec![b"Sun, 07 Nov 1994 08:48:37 GMT".to_vec()] });
|
||||
bench_header!(rfc_850, Expires, { vec![b"Sunday, 06-Nov-94 08:49:37 GMT".to_vec()] });
|
||||
|
||||
Reference in New Issue
Block a user