hyper_sync/header/common/
access_control_expose_headers.rs

1use unicase::Ascii;
2
3header! {
4    /// `Access-Control-Expose-Headers` header, part of
5    /// [CORS](http://www.w3.org/TR/cors/#access-control-expose-headers-response-header)
6    ///
7    /// The Access-Control-Expose-Headers header indicates which headers are safe to expose to the
8    /// API of a CORS API specification.
9    ///
10    /// # ABNF
11    ///
12    /// ```text
13    /// Access-Control-Expose-Headers = "Access-Control-Expose-Headers" ":" #field-name
14    /// ```
15    ///
16    /// # Example values
17    /// * `ETag, Content-Length`
18    ///
19    /// # Examples
20    ///
21    /// ```
22    /// # extern crate hyper_sync;
23    /// # extern crate unicase;
24    /// # fn main() {
25    /// // extern crate unicase;
26    ///
27    /// use hyper_sync::header::{Headers, AccessControlExposeHeaders};
28    /// use unicase::Ascii;
29    ///
30    /// let mut headers = Headers::new();
31    /// headers.set(
32    ///     AccessControlExposeHeaders(vec![
33    ///         Ascii::new("etag".to_owned()),
34    ///         Ascii::new("content-length".to_owned())
35    ///     ])
36    /// );
37    /// # }
38    /// ```
39    ///
40    /// ```
41    /// # extern crate hyper_sync;
42    /// # extern crate unicase;
43    /// # fn main() {
44    /// // extern crate unicase;
45    ///
46    /// use hyper_sync::header::{Headers, AccessControlExposeHeaders};
47    /// use unicase::Ascii;
48    ///
49    /// let mut headers = Headers::new();
50    /// headers.set(
51    ///     AccessControlExposeHeaders(vec![
52    ///         Ascii::new("etag".to_owned()),
53    ///         Ascii::new("content-length".to_owned())
54    ///     ])
55    /// );
56    /// # }
57    /// ```
58    (AccessControlExposeHeaders, "Access-Control-Expose-Headers") => (Ascii<String>)*
59
60    test_access_control_expose_headers {
61        test_header!(test1, vec![b"etag, content-length"]);
62    }
63}