headers/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;
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)]
29pub struct Date(HttpDate);
30
31derive_header! {
32    Date(_),
33    name: DATE
34}
35
36impl From<SystemTime> for Date {
37    fn from(time: SystemTime) -> Date {
38        Date(time.into())
39    }
40}
41
42impl From<Date> for SystemTime {
43    fn from(date: Date) -> SystemTime {
44        date.0.into()
45    }
46}