/rust/registry/src/index.crates.io-1949cf8c6b5b557f/headers-0.4.1/src/common/date.rs
Line | Count | Source |
1 | | use std::time::SystemTime; |
2 | | |
3 | | use crate::util::HttpDate; |
4 | | |
5 | | /// `Date` header, defined in [RFC7231](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.2) |
6 | | /// |
7 | | /// The `Date` header field represents the date and time at which the |
8 | | /// message was originated. |
9 | | /// |
10 | | /// ## ABNF |
11 | | /// |
12 | | /// ```text |
13 | | /// Date = HTTP-date |
14 | | /// ``` |
15 | | /// |
16 | | /// ## Example values |
17 | | /// |
18 | | /// * `Tue, 15 Nov 1994 08:12:31 GMT` |
19 | | /// |
20 | | /// # Example |
21 | | /// |
22 | | /// ``` |
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)] |
29 | | pub struct Date(HttpDate); |
30 | | |
31 | | derive_header! { |
32 | | Date(_), |
33 | | name: DATE |
34 | | } |
35 | | |
36 | | impl From<SystemTime> for Date { |
37 | 0 | fn from(time: SystemTime) -> Date { |
38 | 0 | Date(time.into()) |
39 | 0 | } |
40 | | } |
41 | | |
42 | | impl From<Date> for SystemTime { |
43 | 0 | fn from(date: Date) -> SystemTime { |
44 | 0 | date.0.into() |
45 | 0 | } |
46 | | } |