11
11
//! # fn main() -> http_types::Result<()> {
12
12
//! #
13
13
//! use http_types::Response;
14
- //! use http_types::trace ::{AllowOrigin, Origin };
14
+ //! use http_types::security ::{TimingAllowOrigin, TimingOrigin };
15
15
//!
16
- //! let mut origins = AllowOrigin ::new();
17
- //! origins.push(Origin ::Wildcard);
16
+ //! let mut origins = TimingAllowOrigin ::new();
17
+ //! origins.push(TimingOrigin ::Wildcard);
18
18
//!
19
19
//! let mut res = Response::new(200);
20
20
//! origins.apply(&mut res);
21
21
//!
22
- //! let origins = AllowOrigin ::from_headers(res)?.unwrap();
22
+ //! let origins = TimingAllowOrigin ::from_headers(res)?.unwrap();
23
23
//! let origin = origins.iter().next().unwrap();
24
- //! assert_eq!(origin, &Origin ::Wildcard);
24
+ //! assert_eq!(origin, &TimingOrigin ::Wildcard);
25
25
//! #
26
26
//! # Ok(()) }
27
27
//! ```
@@ -43,26 +43,26 @@ use std::slice;
43
43
/// # fn main() -> http_types::Result<()> {
44
44
/// #
45
45
/// use http_types::Response;
46
- /// use http_types::trace ::{AllowOrigin, Origin };
46
+ /// use http_types::security ::{TimingAllowOrigin, TimingOrigin };
47
47
///
48
- /// let mut origins = AllowOrigin ::new();
49
- /// origins.push(Origin ::Wildcard);
48
+ /// let mut origins = TimingAllowOrigin ::new();
49
+ /// origins.push(TimingOrigin ::Wildcard);
50
50
///
51
51
/// let mut res = Response::new(200);
52
52
/// origins.apply(&mut res);
53
53
///
54
- /// let origins = AllowOrigin ::from_headers(res)?.unwrap();
54
+ /// let origins = TimingAllowOrigin ::from_headers(res)?.unwrap();
55
55
/// let origin = origins.iter().next().unwrap();
56
- /// assert_eq!(origin, &Origin ::Wildcard);
56
+ /// assert_eq!(origin, &TimingOrigin ::Wildcard);
57
57
/// #
58
58
/// # Ok(()) }
59
59
/// ```
60
60
#[ derive( Clone , Eq , PartialEq ) ]
61
- pub struct AllowOrigin {
62
- origins : Vec < Origin > ,
61
+ pub struct TimingAllowOrigin {
62
+ origins : Vec < TimingOrigin > ,
63
63
}
64
64
65
- impl AllowOrigin {
65
+ impl TimingAllowOrigin {
66
66
/// Create a new instance of `AllowOrigin`.
67
67
pub fn new ( ) -> Self {
68
68
Self { origins : vec ! [ ] }
@@ -83,11 +83,11 @@ impl AllowOrigin {
83
83
for header in headers {
84
84
for origin in header. as_str ( ) . split ( ',' ) {
85
85
match origin. trim_start ( ) {
86
- "*" => origins. push ( Origin :: Wildcard ) ,
86
+ "*" => origins. push ( TimingOrigin :: Wildcard ) ,
87
87
r#""null""# => continue ,
88
88
origin => {
89
89
let url = Url :: parse ( origin) . status ( 400 ) ?;
90
- origins. push ( Origin :: Url ( url) ) ;
90
+ origins. push ( TimingOrigin :: Url ( url) ) ;
91
91
}
92
92
}
93
93
}
@@ -97,7 +97,7 @@ impl AllowOrigin {
97
97
}
98
98
99
99
/// Append an origin to the list of origins.
100
- pub fn push ( & mut self , origin : impl Into < Origin > ) {
100
+ pub fn push ( & mut self , origin : impl Into < TimingOrigin > ) {
101
101
self . origins . push ( origin. into ( ) ) ;
102
102
}
103
103
@@ -141,8 +141,8 @@ impl AllowOrigin {
141
141
}
142
142
}
143
143
144
- impl IntoIterator for AllowOrigin {
145
- type Item = Origin ;
144
+ impl IntoIterator for TimingAllowOrigin {
145
+ type Item = TimingOrigin ;
146
146
type IntoIter = IntoIter ;
147
147
148
148
#[ inline]
@@ -153,8 +153,8 @@ impl IntoIterator for AllowOrigin {
153
153
}
154
154
}
155
155
156
- impl < ' a > IntoIterator for & ' a AllowOrigin {
157
- type Item = & ' a Origin ;
156
+ impl < ' a > IntoIterator for & ' a TimingAllowOrigin {
157
+ type Item = & ' a TimingOrigin ;
158
158
type IntoIter = Iter < ' a > ;
159
159
160
160
// #[inline]serv
@@ -163,8 +163,8 @@ impl<'a> IntoIterator for &'a AllowOrigin {
163
163
}
164
164
}
165
165
166
- impl < ' a > IntoIterator for & ' a mut AllowOrigin {
167
- type Item = & ' a mut Origin ;
166
+ impl < ' a > IntoIterator for & ' a mut TimingAllowOrigin {
167
+ type Item = & ' a mut TimingOrigin ;
168
168
type IntoIter = IterMut < ' a > ;
169
169
170
170
#[ inline]
@@ -176,11 +176,11 @@ impl<'a> IntoIterator for &'a mut AllowOrigin {
176
176
/// A borrowing iterator over entries in `AllowOrigin`.
177
177
#[ derive( Debug ) ]
178
178
pub struct IntoIter {
179
- inner : std:: vec:: IntoIter < Origin > ,
179
+ inner : std:: vec:: IntoIter < TimingOrigin > ,
180
180
}
181
181
182
182
impl Iterator for IntoIter {
183
- type Item = Origin ;
183
+ type Item = TimingOrigin ;
184
184
185
185
fn next ( & mut self ) -> Option < Self :: Item > {
186
186
self . inner . next ( )
@@ -195,11 +195,11 @@ impl Iterator for IntoIter {
195
195
/// A lending iterator over entries in `AllowOrigin`.
196
196
#[ derive( Debug ) ]
197
197
pub struct Iter < ' a > {
198
- inner : slice:: Iter < ' a , Origin > ,
198
+ inner : slice:: Iter < ' a , TimingOrigin > ,
199
199
}
200
200
201
201
impl < ' a > Iterator for Iter < ' a > {
202
- type Item = & ' a Origin ;
202
+ type Item = & ' a TimingOrigin ;
203
203
204
204
fn next ( & mut self ) -> Option < Self :: Item > {
205
205
self . inner . next ( )
@@ -214,11 +214,11 @@ impl<'a> Iterator for Iter<'a> {
214
214
/// A mutable iterator over entries in `AllowOrigin`.
215
215
#[ derive( Debug ) ]
216
216
pub struct IterMut < ' a > {
217
- inner : slice:: IterMut < ' a , Origin > ,
217
+ inner : slice:: IterMut < ' a , TimingOrigin > ,
218
218
}
219
219
220
220
impl < ' a > Iterator for IterMut < ' a > {
221
- type Item = & ' a mut Origin ;
221
+ type Item = & ' a mut TimingOrigin ;
222
222
223
223
fn next ( & mut self ) -> Option < Self :: Item > {
224
224
self . inner . next ( )
@@ -231,14 +231,14 @@ impl<'a> Iterator for IterMut<'a> {
231
231
}
232
232
233
233
// Conversion from `AllowOrigin` -> `HeaderValue`.
234
- impl ToHeaderValues for AllowOrigin {
234
+ impl ToHeaderValues for TimingAllowOrigin {
235
235
type Iter = option:: IntoIter < HeaderValue > ;
236
236
fn to_header_values ( & self ) -> crate :: Result < Self :: Iter > {
237
237
Ok ( self . value ( ) . to_header_values ( ) . unwrap ( ) )
238
238
}
239
239
}
240
240
241
- impl Debug for AllowOrigin {
241
+ impl Debug for TimingAllowOrigin {
242
242
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
243
243
let mut list = f. debug_list ( ) ;
244
244
for origin in & self . origins {
@@ -255,27 +255,27 @@ impl Debug for AllowOrigin {
255
255
// NOTE: this origin is different than the origin in the fetch spec. It needs to
256
256
// be its own type.
257
257
#[ derive( Debug , Clone , Eq , PartialEq ) ]
258
- pub enum Origin {
258
+ pub enum TimingOrigin {
259
259
/// An origin URL.
260
260
Url ( Url ) ,
261
261
/// Allow all origins.
262
262
Wildcard ,
263
263
}
264
264
265
- impl From < Url > for Origin {
265
+ impl From < Url > for TimingOrigin {
266
266
fn from ( url : Url ) -> Self {
267
- Origin :: Url ( url)
267
+ TimingOrigin :: Url ( url)
268
268
}
269
269
}
270
270
271
- impl From < Origin > for HeaderValue {
272
- fn from ( entry : Origin ) -> HeaderValue {
271
+ impl From < TimingOrigin > for HeaderValue {
272
+ fn from ( entry : TimingOrigin ) -> HeaderValue {
273
273
unsafe {
274
274
match entry {
275
- Origin :: Url ( url) => {
275
+ TimingOrigin :: Url ( url) => {
276
276
HeaderValue :: from_bytes_unchecked ( format ! ( "{}" , url) . into_bytes ( ) )
277
277
}
278
- Origin :: Wildcard => {
278
+ TimingOrigin :: Wildcard => {
279
279
HeaderValue :: from_bytes_unchecked ( String :: from ( "*" ) . into_bytes ( ) )
280
280
}
281
281
}
@@ -290,43 +290,43 @@ mod test {
290
290
291
291
#[ test]
292
292
fn smoke ( ) -> crate :: Result < ( ) > {
293
- let mut origins = AllowOrigin :: new ( ) ;
294
- origins. push ( Origin :: Wildcard ) ;
293
+ let mut origins = TimingAllowOrigin :: new ( ) ;
294
+ origins. push ( TimingOrigin :: Wildcard ) ;
295
295
296
296
let mut headers = Headers :: new ( ) ;
297
297
origins. apply ( & mut headers) ;
298
298
299
- let origins = AllowOrigin :: from_headers ( headers) ?. unwrap ( ) ;
299
+ let origins = TimingAllowOrigin :: from_headers ( headers) ?. unwrap ( ) ;
300
300
let origin = origins. iter ( ) . next ( ) . unwrap ( ) ;
301
- assert_eq ! ( origin, & Origin :: Wildcard ) ;
301
+ assert_eq ! ( origin, & TimingOrigin :: Wildcard ) ;
302
302
Ok ( ( ) )
303
303
}
304
304
305
305
#[ test]
306
306
fn multi ( ) -> crate :: Result < ( ) > {
307
- let mut origins = AllowOrigin :: new ( ) ;
308
- origins. push ( Origin :: Wildcard ) ;
309
- origins. push ( Origin :: Url ( Url :: parse ( "https://mozilla.org/" ) ?) ) ;
307
+ let mut origins = TimingAllowOrigin :: new ( ) ;
308
+ origins. push ( TimingOrigin :: Wildcard ) ;
309
+ origins. push ( TimingOrigin :: Url ( Url :: parse ( "https://mozilla.org/" ) ?) ) ;
310
310
311
311
let mut headers = Headers :: new ( ) ;
312
312
origins. apply ( & mut headers) ;
313
313
314
- let origins = AllowOrigin :: from_headers ( headers) ?. unwrap ( ) ;
314
+ let origins = TimingAllowOrigin :: from_headers ( headers) ?. unwrap ( ) ;
315
315
let mut origins = origins. iter ( ) ;
316
316
let origin = origins. next ( ) . unwrap ( ) ;
317
- assert ! ( matches!( origin, Origin :: Wildcard ) ) ;
317
+ assert ! ( matches!( origin, TimingOrigin :: Wildcard ) ) ;
318
318
319
319
let origin = origins. next ( ) . unwrap ( ) ;
320
320
let rhs = Url :: parse ( "https://mozilla.org/" ) ?;
321
- assert_eq ! ( origin, & Origin :: Url ( rhs) ) ;
321
+ assert_eq ! ( origin, & TimingOrigin :: Url ( rhs) ) ;
322
322
Ok ( ( ) )
323
323
}
324
324
325
325
#[ test]
326
326
fn bad_request_on_parse_error ( ) -> crate :: Result < ( ) > {
327
327
let mut headers = Headers :: new ( ) ;
328
328
headers. insert ( TIMING_ALLOW_ORIGIN , "server; <nori ate your param omnom>" ) ;
329
- let err = AllowOrigin :: from_headers ( headers) . unwrap_err ( ) ;
329
+ let err = TimingAllowOrigin :: from_headers ( headers) . unwrap_err ( ) ;
330
330
assert_eq ! ( err. status( ) , 400 ) ;
331
331
Ok ( ( ) )
332
332
}
0 commit comments