(&mut self)
| 290 | } |
| 291 | |
| 292 | fn parse_comment_line(&mut self) -> Token<'a> { |
| 293 | debug_assert!(self.bytes[self.byte_index] == b'/'); |
| 294 | self.byte_index += 1; |
| 295 | debug_assert!(self.bytes[self.byte_index] == b'/'); |
| 296 | let start_byte_index = self.byte_index + 1; |
| 297 | self.byte_index += 1; |
| 298 | |
| 299 | // scan byte-by-byte for newline; \n (0x0A) and \r (0x0D) are ASCII |
| 300 | // and can never appear as UTF-8 continuation bytes |
| 301 | while let Some(&b) = self.bytes.get(self.byte_index) { |
| 302 | if b == b'\n' { |
| 303 | break; |
| 304 | } |
| 305 | if b == b'\r' && self.bytes.get(self.byte_index + 1) == Some(&b'\n') { |
| 306 | break; |
| 307 | } |
| 308 | self.byte_index += 1; |
| 309 | } |
| 310 | |
| 311 | Token::CommentLine(&self.file_text[start_byte_index..self.byte_index]) |
| 312 | } |
| 313 | |
| 314 | fn parse_comment_block(&mut self) -> Result<Token<'a>, ParseError> { |
| 315 | debug_assert!(self.bytes[self.byte_index] == b'/'); |
no test coverage detected