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}