@@ -36,6 +36,27 @@ use std::option;
3636use std:: slice;
3737
3838/// Specify origins that are allowed to see values via the Resource Timing API.
39+ ///
40+ /// # Examples
41+ ///
42+ /// ```
43+ /// # fn main() -> http_types::Result<()> {
44+ /// #
45+ /// use http_types::Response;
46+ /// use http_types::trace::{AllowOrigin, Origin};
47+ ///
48+ /// let mut origins = AllowOrigin::new();
49+ /// origins.push(Origin::Wildcard);
50+ ///
51+ /// let mut res = Response::new(200);
52+ /// origins.apply(&mut res);
53+ ///
54+ /// let origins = AllowOrigin::from_headers(res)?.unwrap();
55+ /// let origin = origins.iter().next().unwrap();
56+ /// assert_eq!(origin, &Origin::Wildcard);
57+ /// #
58+ /// # Ok(()) }
59+ /// ```
3960#[ derive( Clone , Eq , PartialEq ) ]
4061pub struct AllowOrigin {
4162 origins : Vec < Origin > ,
@@ -60,7 +81,7 @@ impl AllowOrigin {
6081
6182 let mut origins = vec ! [ ] ;
6283 for header in headers {
63- for origin in header. as_str ( ) . split ( "," ) {
84+ for origin in header. as_str ( ) . split ( ',' ) {
6485 match origin. trim_start ( ) {
6586 "*" => origins. push ( Origin :: Wildcard ) ,
6687 r#""null""# => continue ,
@@ -105,13 +126,6 @@ impl AllowOrigin {
105126 unsafe { HeaderValue :: from_bytes_unchecked ( output. into ( ) ) }
106127 }
107128
108- /// An iterator visiting all server timings.
109- pub fn into_iter ( self ) -> IntoIter {
110- IntoIter {
111- inner : self . origins . into_iter ( ) ,
112- }
113- }
114-
115129 /// An iterator visiting all server timings.
116130 pub fn iter ( & self ) -> Iter < ' _ > {
117131 Iter {
@@ -133,7 +147,9 @@ impl IntoIterator for AllowOrigin {
133147
134148 #[ inline]
135149 fn into_iter ( self ) -> Self :: IntoIter {
136- self . into_iter ( )
150+ IntoIter {
151+ inner : self . origins . into_iter ( ) ,
152+ }
137153 }
138154}
139155
0 commit comments