headers_ext/common/date.rs
1use std::time::SystemTime;
2use util::HttpDate;
3
4/// `Date` header, defined in [RFC7231](http://tools.ietf.org/html/rfc7231#section-7.1.1.2)
5///
6/// The `Date` header field represents the date and time at which the
7/// message was originated.
8///
9/// ## ABNF
10///
11/// ```text
12/// Date = HTTP-date
13/// ```
14///
15/// ## Example values
16///
17/// * `Tue, 15 Nov 1994 08:12:31 GMT`
18///
19/// # Example
20///
21/// ```
22/// # extern crate headers_ext as headers;
23/// use headers::Date;
24/// use std::time::SystemTime;
25///
26/// let date = Date::from(SystemTime::now());
27/// ```
28#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Header)]
29pub struct Date(HttpDate);
30
31impl From<SystemTime> for Date {
32 fn from(time: SystemTime) -> Date {
33 Date(time.into())
34 }
35}
36
37impl From<Date> for SystemTime {
38 fn from(date: Date) -> SystemTime {
39 date.0.into()
40 }
41}