MCPcopy Create free account
hub / github.com/csskit/csskit / consume_url_sequence

Method consume_url_sequence

crates/css_lexer/src/private.rs:384–477  ·  view source on GitHub ↗
(&mut self, leading_len: u32, ident_escaped: bool)

Source from the content-addressed store, hash-verified

382 }
383
384 fn consume_url_sequence(&mut self, leading_len: u32, ident_escaped: bool) -> Token {
385 let mut len = leading_len;
386 let mut trailing_len = 0;
387 let mut contains_escape = ident_escaped;
388 let mut ends_with_paren = false;
389 let (whitespace_count, _) = self.consume_whitespace();
390 if whitespace_count > 0 {
391 len += whitespace_count;
392 }
393 loop {
394 let b = self.peek_byte(0);
395 match b {
396 b')' => {
397 self.pos += 1;
398 len += 1;
399 trailing_len += 1;
400 ends_with_paren = true;
401 break;
402 }
403 0 if self.at_end() => {
404 break;
405 }
406 b if b < 128 && ASCII_WHITESPACE.0[b as usize] => {
407 trailing_len += self.consume_whitespace().0;
408 len += trailing_len;
409 contains_escape = true;
410 let b2 = self.peek_byte(0);
411 match b2 {
412 b')' => {
413 self.pos += 1;
414 len += 1;
415 trailing_len += 1;
416 ends_with_paren = true;
417 break;
418 }
419 0 if self.at_end() => {
420 break;
421 }
422 _ => {
423 return self.consume_remnants_of_bad_url(len);
424 }
425 }
426 }
427 b'\'' | b'"' | b'(' => {
428 return self.consume_remnants_of_bad_url(len);
429 }
430 b'\\' => {
431 let c2 = self.peek_char_at(1);
432 if is_escape_sequence('\\', c2) {
433 self.pos += 1;
434 len += self.consume_escape_sequence();
435 contains_escape = true;
436 } else {
437 return self.consume_remnants_of_bad_url(len);
438 }
439 }
440 _ => {
441 // Bulk scan: find next ), \, or space (most common terminators)

Callers 1

Calls 13

is_escape_sequenceFunction · 0.85
is_non_printableFunction · 0.85
consume_whitespaceMethod · 0.80
peek_byteMethod · 0.80
peek_char_atMethod · 0.80
remaining_bytesMethod · 0.80
iterMethod · 0.80
advance_nMethod · 0.80
peek_charMethod · 0.80
at_endMethod · 0.45

Tested by

no test coverage detected