@@ -30,15 +30,15 @@ impl Header for CacheControl {
3030 "Cache-Control"
3131 }
3232
33- fn parse_header ( raw : & [ Vec < u8 > ] ) -> Option < CacheControl > {
33+ fn parse_header ( raw : & [ Vec < u8 > ] ) -> :: Result < CacheControl > {
3434 let directives = raw. iter ( )
35- . filter_map ( |line| from_one_comma_delimited ( & line[ ..] ) )
35+ . filter_map ( |line| from_one_comma_delimited ( & line[ ..] ) . ok ( ) )
3636 . collect :: < Vec < Vec < CacheDirective > > > ( )
3737 . concat ( ) ;
3838 if !directives. is_empty ( ) {
39- Some ( CacheControl ( directives) )
39+ Ok ( CacheControl ( directives) )
4040 } else {
41- None
41+ Err ( :: Error :: Header )
4242 }
4343 }
4444}
@@ -148,35 +148,35 @@ mod tests {
148148 #[ test]
149149 fn test_parse_multiple_headers ( ) {
150150 let cache = Header :: parse_header ( & [ b"no-cache" . to_vec ( ) , b"private" . to_vec ( ) ] ) ;
151- assert_eq ! ( cache, Some ( CacheControl ( vec![ CacheDirective :: NoCache ,
151+ assert_eq ! ( cache. ok ( ) , Some ( CacheControl ( vec![ CacheDirective :: NoCache ,
152152 CacheDirective :: Private ] ) ) )
153153 }
154154
155155 #[ test]
156156 fn test_parse_argument ( ) {
157157 let cache = Header :: parse_header ( & [ b"max-age=100, private" . to_vec ( ) ] ) ;
158- assert_eq ! ( cache, Some ( CacheControl ( vec![ CacheDirective :: MaxAge ( 100 ) ,
158+ assert_eq ! ( cache. ok ( ) , Some ( CacheControl ( vec![ CacheDirective :: MaxAge ( 100 ) ,
159159 CacheDirective :: Private ] ) ) )
160160 }
161161
162162 #[ test]
163163 fn test_parse_quote_form ( ) {
164164 let cache = Header :: parse_header ( & [ b"max-age=\" 200\" " . to_vec ( ) ] ) ;
165- assert_eq ! ( cache, Some ( CacheControl ( vec![ CacheDirective :: MaxAge ( 200 ) ] ) ) )
165+ assert_eq ! ( cache. ok ( ) , Some ( CacheControl ( vec![ CacheDirective :: MaxAge ( 200 ) ] ) ) )
166166 }
167167
168168 #[ test]
169169 fn test_parse_extension ( ) {
170170 let cache = Header :: parse_header ( & [ b"foo, bar=baz" . to_vec ( ) ] ) ;
171- assert_eq ! ( cache, Some ( CacheControl ( vec![
171+ assert_eq ! ( cache. ok ( ) , Some ( CacheControl ( vec![
172172 CacheDirective :: Extension ( "foo" . to_owned( ) , None ) ,
173173 CacheDirective :: Extension ( "bar" . to_owned( ) , Some ( "baz" . to_owned( ) ) ) ] ) ) )
174174 }
175175
176176 #[ test]
177177 fn test_parse_bad_syntax ( ) {
178- let cache: Option < CacheControl > = Header :: parse_header ( & [ b"foo=" . to_vec ( ) ] ) ;
179- assert_eq ! ( cache, None )
178+ let cache: :: Result < CacheControl > = Header :: parse_header ( & [ b"foo=" . to_vec ( ) ] ) ;
179+ assert_eq ! ( cache. ok ( ) , None )
180180 }
181181}
182182
0 commit comments