headers/common/
access_control_max_age.rs

1use std::time::Duration;
2
3use crate::util::Seconds;
4
5/// `Access-Control-Max-Age` header, part of
6/// [CORS](http://www.w3.org/TR/cors/#access-control-max-age-response-header)
7///
8/// The `Access-Control-Max-Age` header indicates how long the results of a
9/// preflight request can be cached in a preflight result cache.
10///
11/// # ABNF
12///
13/// ```text
14/// Access-Control-Max-Age = \"Access-Control-Max-Age\" \":\" delta-seconds
15/// ```
16///
17/// # Example values
18///
19/// * `531`
20///
21/// # Examples
22///
23/// ```
24/// use std::time::Duration;
25/// use headers::AccessControlMaxAge;
26///
27/// let max_age = AccessControlMaxAge::from(Duration::from_secs(531));
28/// ```
29#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
30pub struct AccessControlMaxAge(Seconds);
31
32derive_header! {
33    AccessControlMaxAge(_),
34    name: ACCESS_CONTROL_MAX_AGE
35}
36
37impl From<Duration> for AccessControlMaxAge {
38    fn from(dur: Duration) -> AccessControlMaxAge {
39        AccessControlMaxAge(dur.into())
40    }
41}
42
43impl From<AccessControlMaxAge> for Duration {
44    fn from(acma: AccessControlMaxAge) -> Duration {
45        acma.0.into()
46    }
47}