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

Method consume_trivia

crates/css_parse/src/parser.rs:339–377  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

337 }
338
339 pub fn consume_trivia(&mut self) -> Vec<'a, Cursor> {
340 let mut trivia = Vec::new_in(self.bump);
341 for i in self.buffer_index..BUFFER_LEN {
342 let c = self.buffer[i];
343 if c == Kind::Eof {
344 self.buffer_index = i;
345 return trivia;
346 } else if c == self.skip {
347 trivia.push(c)
348 } else {
349 self.buffer_index = i;
350 self.fill_buffer(i);
351 return trivia;
352 }
353 }
354
355 let eof = eof_cursor(self.source_text.len());
356 loop {
357 let Some(c) = self.cursor_iter.next() else {
358 self.buffer = [eof; BUFFER_LEN];
359 self.buffer_index = 0;
360 return trivia;
361 };
362 if c == Kind::Eof {
363 self.buffer = [eof; BUFFER_LEN];
364 self.buffer_index = 0;
365 return trivia;
366 } else if c == self.skip {
367 trivia.push(c)
368 } else {
369 self.buffer[0] = c;
370 for i in 1..BUFFER_LEN {
371 self.buffer[i] = self.cursor_iter.next().unwrap_or(eof);
372 }
373 self.buffer_index = 0;
374 return trivia;
375 }
376 }
377 }
378
379 /// Consume trivia and attach it to the next content token for output preservation.
380 /// This should be called when you want to consume whitespace/comments but preserve

Callers 3

parseMethod · 0.80

Calls 4

eof_cursorFunction · 0.85
fill_bufferMethod · 0.80
lenMethod · 0.45
nextMethod · 0.45

Tested by

no test coverage detected