@@ -30,15 +30,15 @@ impl Header for CacheControl {
30
30
"Cache-Control"
31
31
}
32
32
33
- fn parse_header ( raw : & [ Vec < u8 > ] ) -> Option < CacheControl > {
33
+ fn parse_header ( raw : & [ Vec < u8 > ] ) -> :: Result < CacheControl > {
34
34
let directives = raw. iter ( )
35
- . filter_map ( |line| from_one_comma_delimited ( & line[ ..] ) )
35
+ . filter_map ( |line| from_one_comma_delimited ( & line[ ..] ) . ok ( ) )
36
36
. collect :: < Vec < Vec < CacheDirective > > > ( )
37
37
. concat ( ) ;
38
38
if !directives. is_empty ( ) {
39
- Some ( CacheControl ( directives) )
39
+ Ok ( CacheControl ( directives) )
40
40
} else {
41
- None
41
+ Err ( :: Error :: Header )
42
42
}
43
43
}
44
44
}
@@ -148,35 +148,35 @@ mod tests {
148
148
#[ test]
149
149
fn test_parse_multiple_headers ( ) {
150
150
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 ,
152
152
CacheDirective :: Private ] ) ) )
153
153
}
154
154
155
155
#[ test]
156
156
fn test_parse_argument ( ) {
157
157
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 ) ,
159
159
CacheDirective :: Private ] ) ) )
160
160
}
161
161
162
162
#[ test]
163
163
fn test_parse_quote_form ( ) {
164
164
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 ) ] ) ) )
166
166
}
167
167
168
168
#[ test]
169
169
fn test_parse_extension ( ) {
170
170
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![
172
172
CacheDirective :: Extension ( "foo" . to_owned( ) , None ) ,
173
173
CacheDirective :: Extension ( "bar" . to_owned( ) , Some ( "baz" . to_owned( ) ) ) ] ) ) )
174
174
}
175
175
176
176
#[ test]
177
177
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 )
180
180
}
181
181
}
182
182
0 commit comments