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

Method to_atom

crates/css_parse/src/parser.rs:203–225  ·  view source on GitHub ↗
(&self, c: Cursor)

Source from the content-addressed store, hash-verified

201 }
202
203 pub fn to_atom<A: AtomSet + PartialEq>(&self, c: Cursor) -> A {
204 let bits = c.atom_bits();
205 if bits == 0 {
206 if c != KindSet::ATOM_LIKE {
207 return A::from_bits(0);
208 }
209 let source_cursor = self.to_source_cursor(c);
210 return A::from_str(&source_cursor.parse(self.bump));
211 }
212 #[cfg(debug_assertions)]
213 if c == KindSet::ATOM_LIKE && !((c == Kind::Ident || c == Kind::Function) && c.token().is_dashed_ident()) {
214 let source_cursor = self.to_source_cursor(c);
215 debug_assert!(
216 A::from_bits(bits) == A::from_str(&source_cursor.parse(self.bump)),
217 "{:?} -> {:?} != {:?} ({:?})",
218 c,
219 A::from_bits(bits),
220 A::from_str(&source_cursor.parse(self.bump)),
221 source_cursor.parse(self.bump)
222 );
223 }
224 A::from_bits(bits)
225 }
226
227 #[inline(always)]
228 pub fn offset(&self) -> SourceOffset {

Callers 1

peekMethod · 0.45

Calls 5

is_dashed_identMethod · 0.80
atom_bitsMethod · 0.45
to_source_cursorMethod · 0.45
parseMethod · 0.45
tokenMethod · 0.45

Tested by

no test coverage detected