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

Method is_all_keywords

crates/csskit_proc_macro/src/generate.rs:477–500  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

475 }
476
477 fn is_all_keywords(&self) -> bool {
478 match self {
479 Self::Ident(_) => true,
480 Self::IntLiteral(_) => false,
481 Self::DimensionLiteral(_, _) => false,
482 Self::Function(_, _) => false,
483 Self::Type(DefType { ident, .. }) => ident.0.ends_with("Keywords"),
484 Self::FunctionType(_) => false,
485 Self::StyleValue(_) => false,
486 Self::AutoOr(def) => def.deref().is_all_keywords(),
487 Self::NoneOr(def) => def.deref().is_all_keywords(),
488 Self::AutoNoneOr(def) => def.deref().is_all_keywords(),
489 Self::NormalOr(def) => def.deref().is_all_keywords(),
490 // Optional(Ident(kw)) is emitted as Option<crate::Kw>, not via the Keywords enum path.
491 Self::Optional(def) => match def.as_ref() {
492 Self::Ident(_) => false,
493 _ => def.deref().is_all_keywords(),
494 },
495 Self::Combinator(defs, _) => defs.iter().all(Self::is_all_keywords),
496 Self::Group(def, _) => def.deref().is_all_keywords(),
497 Self::Multiplier(def, _, _) => def.deref().is_all_keywords(),
498 Self::Punct(_) => false,
499 }
500 }
501
502 fn gather_keywords(&self) -> Vec<&Self> {
503 match self {

Callers 2

generate_definitionMethod · 0.80

Calls 3

as_refMethod · 0.80
iterMethod · 0.80
derefMethod · 0.45

Tested by

no test coverage detected