Skip to content

Commit 45b0b88

Browse files
committed
Merge pull request #677 from untitaker/access-control-expose-headers
Add Access-Control-Expose-Headers
2 parents becced4 + f783e99 commit 45b0b88

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
use unicase::UniCase;
2+
3+
header! {
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+
/// ```plain
12+
/// Access-Control-Expose-Headers = "Access-Control-Expose-Headers" ":" #field-name
13+
/// ```
14+
///
15+
/// # Example values
16+
/// * `ETag, Content-Length`
17+
///
18+
/// # Examples
19+
/// ```
20+
/// # extern crate hyper;
21+
/// # extern crate unicase;
22+
/// # fn main() {
23+
/// // extern crate unicase;
24+
///
25+
/// use hyper::header::{Headers, AccessControlExposeHeaders};
26+
/// use unicase::UniCase;
27+
///
28+
/// let mut headers = Headers::new();
29+
/// headers.set(
30+
/// AccessControlExposeHeaders(vec![
31+
/// UniCase("etag".to_owned()),
32+
/// UniCase("content-length".to_owned())
33+
/// ])
34+
/// );
35+
/// # }
36+
/// ```
37+
/// ```
38+
/// # extern crate hyper;
39+
/// # extern crate unicase;
40+
/// # fn main() {
41+
/// // extern crate unicase;
42+
///
43+
/// use hyper::header::{Headers, AccessControlExposeHeaders};
44+
/// use unicase::UniCase;
45+
///
46+
/// let mut headers = Headers::new();
47+
/// headers.set(
48+
/// AccessControlExposeHeaders(vec![
49+
/// UniCase("etag".to_owned()),
50+
/// UniCase("content-length".to_owned())
51+
/// ])
52+
/// );
53+
/// # }
54+
/// ```
55+
(AccessControlExposeHeaders, "Access-Control-Expose-Headers") => (UniCase<String>)*
56+
57+
test_access_control_expose_headers {
58+
test_header!(test1, vec![b"etag, content-length"]);
59+
}
60+
}

src/header/common/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ pub use self::accept::Accept;
1010
pub use self::access_control_allow_headers::AccessControlAllowHeaders;
1111
pub use self::access_control_allow_methods::AccessControlAllowMethods;
1212
pub use self::access_control_allow_origin::AccessControlAllowOrigin;
13+
pub use self::access_control_expose_headers::AccessControlExposeHeaders;
1314
pub use self::access_control_max_age::AccessControlMaxAge;
1415
pub use self::access_control_request_headers::AccessControlRequestHeaders;
1516
pub use self::access_control_request_method::AccessControlRequestMethod;
@@ -355,6 +356,7 @@ mod accept;
355356
mod access_control_allow_headers;
356357
mod access_control_allow_methods;
357358
mod access_control_allow_origin;
359+
mod access_control_expose_headers;
358360
mod access_control_max_age;
359361
mod access_control_request_headers;
360362
mod access_control_request_method;

0 commit comments

Comments
 (0)