Using `time::Tm` directly in HTTP header fields requires special handling to parse and format the header values., this stops us from using the header macros. By wrapping `time::Time` in a `HttpDate`, we can use the `FromStr` and `Display` traits of `HttpDate` like for most other values. BREAKING_CHANGE: All code using one of the `Date`, `Expires`, `If-Modified-Since`, `If-Unmodified-Since`, `Last-Modified` header fields needs to wrap `time::Tm` with `HttpDate`. Removed `FromStr` trait of `Date`, `If-Modified-Sice` and `If-Unmodified-Sice`, implementing the trait here is inconsistent with other headers.
12 lines
413 B
Rust
12 lines
413 B
Rust
use header::HttpDate;
|
|
|
|
/// The `Date` header field.
|
|
#[derive(Copy, PartialEq, Clone, Debug)]
|
|
pub struct Date(pub HttpDate);
|
|
|
|
impl_header!(Date, "Date", HttpDate);
|
|
|
|
bench_header!(imf_fixdate, Date, { vec![b"Sun, 07 Nov 1994 08:48:37 GMT".to_vec()] });
|
|
bench_header!(rfc_850, Date, { vec![b"Sunday, 06-Nov-94 08:49:37 GMT".to_vec()] });
|
|
bench_header!(asctime, Date, { vec![b"Sun Nov 6 08:49:37 1994".to_vec()] });
|