Skip to content

Commit aed8bfa

Browse files
committed
favor insert_header over apply_header
This also implements `Header for T` and provides generic conversions between `Header` and `HeaderName` / `HeaderValue`
1 parent aeb03fd commit aed8bfa

30 files changed

+54
-201
lines changed

src/auth/authorization.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use crate::headers::{Header, HeaderName, HeaderValue, Headers, AUTHORIZATION};
2121
/// let authz = Authorization::new(scheme, credentials.into());
2222
///
2323
/// let mut res = Response::new(200);
24-
/// authz.apply_header(&mut res);
24+
/// res.insert_header(&authz, &authz);
2525
///
2626
/// let authz = Authorization::from_headers(res)?.unwrap();
2727
///

src/auth/basic_auth.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use crate::{bail_status as bail, ensure_status as ensure};
2525
/// let authz = BasicAuth::new(username, password);
2626
///
2727
/// let mut res = Response::new(200);
28-
/// authz.apply_header(&mut res);
28+
/// res.insert_header(&authz, &authz);
2929
///
3030
/// let authz = BasicAuth::from_headers(res)?.unwrap();
3131
///

src/auth/www_authenticate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use crate::{auth::AuthenticationScheme, headers::Header};
2727
/// let authz = WwwAuthenticate::new(scheme, realm.into());
2828
///
2929
/// let mut res = Response::new(200);
30-
/// authz.apply_header(&mut res);
30+
/// res.insert_header(&authz, &authz);
3131
///
3232
/// let authz = WwwAuthenticate::from_headers(res)?.unwrap();
3333
///

src/cache/age.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use std::time::Duration;
2222
/// let age = Age::from_secs(12);
2323
///
2424
/// let mut res = Response::new(200);
25-
/// age.apply_header(&mut res);
25+
/// res.insert_header(&age, &age);
2626
///
2727
/// let age = Age::from_headers(res)?.unwrap();
2828
/// assert_eq!(age, Age::from_secs(12));
@@ -69,14 +69,6 @@ impl Age {
6969
}
7070
}
7171

72-
impl ToHeaderValues for Age {
73-
type Iter = option::IntoIter<HeaderValue>;
74-
fn to_header_values(&self) -> crate::Result<Self::Iter> {
75-
// A HeaderValue will always convert into itself.
76-
Ok(self.header_value().to_header_values().unwrap())
77-
}
78-
}
79-
8072
impl Header for Age {
8173
fn header_name(&self) -> HeaderName {
8274
AGE

src/cache/cache_control/cache_control.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use std::slice;
2222
/// entries.push(CacheDirective::NoStore);
2323
///
2424
/// let mut res = Response::new(200);
25-
/// entries.apply_header(&mut res);
25+
/// res.insert_header(&entries, &entries);
2626
///
2727
/// let entries = CacheControl::from_headers(res)?.unwrap();
2828
/// let mut entries = entries.iter();
@@ -189,14 +189,6 @@ impl<'a> Iterator for IterMut<'a> {
189189
}
190190
}
191191

192-
impl ToHeaderValues for CacheControl {
193-
type Iter = option::IntoIter<HeaderValue>;
194-
fn to_header_values(&self) -> crate::Result<Self::Iter> {
195-
// A HeaderValue will always convert into itself.
196-
Ok(self.header_value().to_header_values().unwrap())
197-
}
198-
}
199-
200192
impl Debug for CacheControl {
201193
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
202194
let mut list = f.debug_list();

src/cache/clear_site_data/mod.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use headers::Header;
3636
/// entries.push(ClearDirective::Cookies);
3737
///
3838
/// let mut res = Response::new(200);
39-
/// entries.apply_header(&mut res);
39+
/// res.insert_header(&entries, &entries);
4040
///
4141
/// let entries = ClearSiteData::from_headers(res)?.unwrap();
4242
/// let mut entries = entries.iter();
@@ -201,14 +201,6 @@ impl<'a> Iterator for IterMut<'a> {
201201
}
202202
}
203203

204-
impl ToHeaderValues for ClearSiteData {
205-
type Iter = option::IntoIter<HeaderValue>;
206-
fn to_header_values(&self) -> crate::Result<Self::Iter> {
207-
// A HeaderValue will always convert into itself.
208-
Ok(self.header_value().to_header_values().unwrap())
209-
}
210-
}
211-
212204
impl Debug for ClearSiteData {
213205
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
214206
let mut list = f.debug_list();

src/cache/expires.rs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
use crate::headers::{Header, HeaderName, HeaderValue, Headers, ToHeaderValues, EXPIRES};
1+
use crate::headers::{Header, HeaderName, HeaderValue, Headers, EXPIRES};
22
use crate::utils::{fmt_http_date, parse_http_date};
33

44
use std::fmt::Debug;
5-
use std::option;
65
use std::time::{Duration, SystemTime};
76

87
/// HTTP `Expires` header
@@ -24,7 +23,7 @@ use std::time::{Duration, SystemTime};
2423
/// let expires = Expires::new_at(time);
2524
///
2625
/// let mut res = Response::new(200);
27-
/// expires.apply_header(&mut res);
26+
/// res.insert_header(&expires, &expires);
2827
///
2928
/// let expires = Expires::from_headers(res)?.unwrap();
3029
///
@@ -84,14 +83,6 @@ impl Header for Expires {
8483
}
8584
}
8685

87-
impl ToHeaderValues for Expires {
88-
type Iter = option::IntoIter<HeaderValue>;
89-
fn to_header_values(&self) -> crate::Result<Self::Iter> {
90-
// A HeaderValue will always convert into itself.
91-
Ok(self.header_value().to_header_values().unwrap())
92-
}
93-
}
94-
9586
#[cfg(test)]
9687
mod test {
9788
use super::*;

src/conditional/etag.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use std::option;
2424
/// let etag = ETag::new("0xcafebeef".to_string());
2525
///
2626
/// let mut res = Response::new(200);
27-
/// etag.apply_header(&mut res);
27+
/// res.insert_header(&etag, &etag);
2828
///
2929
/// let etag = ETag::from_headers(res)?.unwrap();
3030
/// assert_eq!(etag, ETag::Strong(String::from("0xcafebeef")));
@@ -133,14 +133,6 @@ impl Display for ETag {
133133
}
134134
}
135135

136-
impl ToHeaderValues for ETag {
137-
type Iter = option::IntoIter<HeaderValue>;
138-
fn to_header_values(&self) -> crate::Result<Self::Iter> {
139-
// A HeaderValue will always convert into itself.
140-
Ok(self.header_value().to_header_values().unwrap())
141-
}
142-
}
143-
144136
#[cfg(test)]
145137
mod test {
146138
use super::*;

src/conditional/if_match.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use std::slice;
2727
/// entries.push(ETag::new("0xbeefcafe".to_string()));
2828
///
2929
/// let mut res = Response::new(200);
30-
/// entries.apply_header(&mut res);
30+
/// res.insert_header(&entries, &entries);
3131
///
3232
/// let entries = IfMatch::from_headers(res)?.unwrap();
3333
/// let mut entries = entries.iter();
@@ -217,14 +217,6 @@ impl<'a> Iterator for IterMut<'a> {
217217
}
218218
}
219219

220-
impl ToHeaderValues for IfMatch {
221-
type Iter = option::IntoIter<HeaderValue>;
222-
fn to_header_values(&self) -> crate::Result<Self::Iter> {
223-
// A HeaderValue will always convert into itself.
224-
Ok(self.header_value().to_header_values().unwrap())
225-
}
226-
}
227-
228220
impl Debug for IfMatch {
229221
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
230222
let mut list = f.debug_list();

src/conditional/if_modified_since.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use std::time::SystemTime;
2525
/// let expires = IfModifiedSince::new(time);
2626
///
2727
/// let mut res = Response::new(200);
28-
/// expires.apply_header(&mut res);
28+
/// res.insert_header(&expires, &expires);
2929
///
3030
/// let expires = IfModifiedSince::from_headers(res)?.unwrap();
3131
///
@@ -67,14 +67,6 @@ impl IfModifiedSince {
6767
}
6868
}
6969

70-
impl ToHeaderValues for IfModifiedSince {
71-
type Iter = option::IntoIter<HeaderValue>;
72-
fn to_header_values(&self) -> crate::Result<Self::Iter> {
73-
// A HeaderValue will always convert into itself.
74-
Ok(self.header_value().to_header_values().unwrap())
75-
}
76-
}
77-
7870
impl Header for IfModifiedSince {
7971
fn header_name(&self) -> HeaderName {
8072
IF_MODIFIED_SINCE

0 commit comments

Comments
 (0)