(&mut self, first_digit: char)
| 24 | |
| 25 | impl<'a> ParseEscape for Chars<'a> { |
| 26 | fn consume_hex_escape(&mut self, first_digit: char) -> (u32, u8) { |
| 27 | let mut value = first_digit.to_digit(16).unwrap(); |
| 28 | let mut i = 1u8; // We already consumed one hex digit |
| 29 | |
| 30 | // Continue consuming up to 5 more hex digits (total of 6) |
| 31 | while i < 6 { |
| 32 | if let Some(next_char) = self.as_str().chars().next() { |
| 33 | if let Some(hex_value) = next_char.to_digit(16) { |
| 34 | self.next(); |
| 35 | value = (value << 4) | hex_value; |
| 36 | i += 1; |
| 37 | } else { |
| 38 | break; |
| 39 | } |
| 40 | } else { |
| 41 | break; |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | (value, i) |
| 46 | } |
| 47 | |
| 48 | fn consume_escape_whitespace(&mut self) -> u8 { |
| 49 | if let Some(next_char) = self.as_str().chars().next() |
no test coverage detected