(bytes: &[u8])
| 145 | } |
| 146 | |
| 147 | pub(crate) fn parse_timezone_offset(bytes: &[u8]) -> Option<i64> { |
| 148 | if bytes == [b'Z'] { |
| 149 | return Some(0); |
| 150 | } |
| 151 | if bytes.len() != 6 || !matches!(bytes[0], b'+' | b'-') || bytes[3] != b':' { |
| 152 | return None; |
| 153 | } |
| 154 | let offset = i64::from(parse_digits(&bytes[1..3])? * 60 + parse_digits(&bytes[4..6])?); |
| 155 | Some(if bytes[0] == b'+' { offset } else { -offset }) |
| 156 | } |
| 157 | |
| 158 | pub(crate) fn parse_iso_date(value: &str) -> Option<IsoDate> { |
| 159 | let bytes = value.as_bytes(); |
no test coverage detected