pub trait BooleanFeature<'a>: Sized {
    // Provided method
    fn parse_boolean_feature<I>(
        p: &mut Parser<'a, I>,
        name: &'static dyn DynAtomSet,
    ) -> Result<(LeftParen, Ident, Option<(Colon, Any)>, RightParen)>
       where I: Iterator<Item = Cursor> + Clone { ... }
}Expand description
This trait provides an implementation for parsing a “Media Feature” in the “Boolean” context. This is complementary to the other media features: RangedFeature and DiscreteFeature.
Rather than implementing this trait on an enum, use the boolean_feature! macro which expands to define the enum and necessary traits (Parse, this trait, and ToCursors) in a single macro call.
It does not implement Parse, but provides
parse_boolean_feature(&mut Parser<'a>, name: &str) -> Result<Self>, which can make for a trivial
Parse implementation. The name: &str parameter refers to the <feature-name> token, which will
be parsed as an Ident.
CSS defines the Media Feature generally as:
 │├─ "(" ─╮─ <feature-name> ─ ":" ─ <value> ─╭─ ")" ─┤│
          ├─ <feature-name> ─────────────────┤
          ╰─ <ranged-feature> ───────────────╯
The RangedFeature trait provides algorithms for parsing <ranged-feature> productions, but
boolean features use the other two productions, with some rules around the <value>.
A boolean media query:
- Can omit the the :and<value>.
- Must allow any token as the <value>, but the<dimension>of0,<number>of0and<ident>ofnonewill mean the query evaluates to false.
Given these, this trait parses as:
<boolean-feature>
 │├─ "(" ─╮─ <feature-name> ─ ":" ─ <any> ─╭─ ")" ─┤│
          ╰─ <feature-name> ───────────────╯
Provided Methods§
fn parse_boolean_feature<I>( p: &mut Parser<'a, I>, name: &'static dyn DynAtomSet, ) -> Result<(LeftParen, Ident, Option<(Colon, Any)>, RightParen)>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.