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

Function detect_unitless_zero_resolves

crates/csskit_spec_generator/src/codegen.rs:540–543  ·  view source on GitHub ↗

Detect whether unitless zero resolves to a number for this property. This returns `Some(quote! { unitless_zero_resolves = Number })` when ` ` appears before ` `. In CSS grammar, the parser tries alternatives in order, so if ` ` comes first, `0` will parse as a number. This signifies that numbers have a semantic distinction compared to lengths, and therefore a unitless zero i

(def: Option<&Def>)

Source from the content-addressed store, hash-verified

538/// - `line-height: <number> | <length>`: `0` is a number (0x multiplier)
539/// - `tab-size: <number> | <length>`: `0` is a number (0 tab characters)
540fn detect_unitless_zero_resolves(def: Option<&Def>) -> Option<TokenStream> {
541 let def = def?;
542 if number_precedes_length(def) { Some(quote! { unitless_zero_resolves = Number }) } else { None }
543}
544
545/// Recursively check if `<number>` precedes `<length>` in any defs.
546fn number_precedes_length(def: &Def) -> bool {

Callers 1

generate_property_typeFunction · 0.85

Calls 1

number_precedes_lengthFunction · 0.85

Tested by

no test coverage detected