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

Method parse

crates/css_parse/src/syntax/rule_list.rs:54–74  ·  view source on GitHub ↗
(p: &mut Parser<'a, Iter>)

Source from the content-addressed store, hash-verified

52 M: NodeMetadata,
53{
54 fn parse<Iter>(p: &mut Parser<'a, Iter>) -> Result<Self>
55 where
56 Iter: Iterator<Item = crate::Cursor> + Clone,
57 {
58 let open_curly = p.parse::<T!['{']>()?;
59 let mut rules = Vec::new_in(p.bump());
60 let mut meta = M::default();
61 loop {
62 p.parse_if_peek::<T![;]>().ok();
63 if p.at_end() {
64 return Ok(Self { open_curly, rules, close_curly: None, meta });
65 }
66 let close_curly = p.parse_if_peek::<T!['}']>()?;
67 if close_curly.is_some() {
68 return Ok(Self { open_curly, rules, close_curly, meta });
69 }
70 let rule = p.parse::<R>()?;
71 meta = meta.merge(rule.metadata());
72 rules.push(rule);
73 }
74 }
75}
76
77impl<'a, R, M> ToCursors for RuleList<'a, R, M>

Callers

nothing calls this directly

Calls 5

okMethod · 0.80
bumpMethod · 0.45
at_endMethod · 0.45
mergeMethod · 0.45
metadataMethod · 0.45

Tested by

no test coverage detected