refactor(headers): Fail to parse single value header values
A single value header value can't be "", so `from_one_raw_str()` now returns `None` on empty values. This makes custom checks in headers obsolete. BREAKING CHANGE: `from_one_raw_str()` returns `None` on empty values.
This commit is contained in:
		| @@ -57,4 +57,6 @@ fn test_parse_header() { | ||||
|     let c: Pragma = Header::parse_header([b"FoObar".to_vec()].as_ref()).unwrap(); | ||||
|     let d = Pragma::Ext("FoObar".to_string()); | ||||
|     assert_eq!(c, d); | ||||
|     let e: Option<Pragma> = Header::parse_header([b"".to_vec()].as_ref()); | ||||
|     assert_eq!(e, None); | ||||
| } | ||||
|   | ||||
| @@ -9,11 +9,13 @@ pub fn from_one_raw_str<T: str::FromStr>(raw: &[Vec<u8>]) -> Option<T> { | ||||
|         return None; | ||||
|     } | ||||
|     // we JUST checked that raw.len() == 1, so raw[0] WILL exist. | ||||
|     match str::from_utf8(&raw[0][..]) { | ||||
|         Ok(s) => str::FromStr::from_str(s).ok(), | ||||
|         Err(_) => None | ||||
|     if let Ok(s) = str::from_utf8(&raw[0][..]) { | ||||
|         if s != "" { | ||||
|             return str::FromStr::from_str(s).ok(); | ||||
|         } | ||||
|     } | ||||
|     None | ||||
| } | ||||
|  | ||||
| /// Reads a comma-delimited raw header into a Vec. | ||||
| #[inline] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user