Trait ToCursors

Source
pub trait ToCursors {
    // Required method
    fn to_cursors(&self, s: &mut impl CursorSink);
}
Expand description

This trait allows AST nodes to decompose themselves back into a set of (ordered) Cursors.

This trait is useful to implement because downstream operations can use it to reconstruct source text from Nodes, including after mutating Nodes, such as transforming them (e.g. minification or formatting).

Nodes that implement this trait should call s.append() in the order that those Cursors were parsed, unless there’s a good reason not to. Some good reasons not to:

  • The specification supplies a specific grammar order.
  • Doing so would require creating many intermediary enums or structs.

Required Methods§

Source

fn to_cursors(&self, s: &mut impl CursorSink)

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.

Implementations on Foreign Types§

Source§

impl<'a, T> ToCursors for Vec<'a, T>
where T: ToCursors,

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B> ToCursors for (A, B)
where A: ToCursors, B: ToCursors,

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C> ToCursors for (A, B, C)
where A: ToCursors, B: ToCursors, C: ToCursors,

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D> ToCursors for (A, B, C, D)
where A: ToCursors, B: ToCursors, C: ToCursors, D: ToCursors,

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E> ToCursors for (A, B, C, D, E)
where A: ToCursors, B: ToCursors, C: ToCursors, D: ToCursors, E: ToCursors,

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E, F> ToCursors for (A, B, C, D, E, F)

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E, F, G> ToCursors for (A, B, C, D, E, F, G)

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E, F, G, H> ToCursors for (A, B, C, D, E, F, G, H)

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E, F, G, H, I> ToCursors for (A, B, C, D, E, F, G, H, I)

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E, F, G, H, I, J> ToCursors for (A, B, C, D, E, F, G, H, I, J)

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K> ToCursors for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> ToCursors for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Source§

impl<T> ToCursors for Option<T>
where T: ToCursors,

Source§

fn to_cursors(&self, s: &mut impl CursorSink)

Implementors§

Source§

impl ToCursors for Comparison

Source§

impl ToCursors for ConditionKeyword

Source§

impl ToCursors for BangImportant

Source§

impl ToCursors for NoBlockAllowed

Source§

impl ToCursors for NoPreludeAllowed

Source§

impl ToCursors for And

Source§

impl ToCursors for At

Source§

impl ToCursors for Backtick

Source§

impl ToCursors for Bang

Source§

impl ToCursors for Caret

Source§

impl ToCursors for Dash

Source§

impl ToCursors for Dollar

Source§

impl ToCursors for Dot

Source§

impl ToCursors for Eq

Source§

impl ToCursors for Gt

Source§

impl ToCursors for css_parse::token_macros::delim::Hash

Source§

impl ToCursors for Lt

Source§

impl ToCursors for Or

Source§

impl ToCursors for css_parse::token_macros::delim::Percent

Source§

impl ToCursors for Plus

Source§

impl ToCursors for Question

Source§

impl ToCursors for Slash

Source§

impl ToCursors for Star

Source§

impl ToCursors for Tilde

Source§

impl ToCursors for Underscore

Source§

impl ToCursors for Cap

Source§

impl ToCursors for Ch

Source§

impl ToCursors for Cm

Source§

impl ToCursors for Cqb

Source§

impl ToCursors for Cqh

Source§

impl ToCursors for Cqi

Source§

impl ToCursors for Cqmax

Source§

impl ToCursors for Cqmin

Source§

impl ToCursors for Cqw

Source§

impl ToCursors for Db

Source§

impl ToCursors for Deg

Source§

impl ToCursors for Dpcm

Source§

impl ToCursors for Dpi

Source§

impl ToCursors for Dppx

Source§

impl ToCursors for Dvb

Source§

impl ToCursors for Dvh

Source§

impl ToCursors for Dvi

Source§

impl ToCursors for Dvmax

Source§

impl ToCursors for Dvmin

Source§

impl ToCursors for Dvw

Source§

impl ToCursors for Em

Source§

impl ToCursors for Ex

Source§

impl ToCursors for Fr

Source§

impl ToCursors for Grad

Source§

impl ToCursors for Hz

Source§

impl ToCursors for Ic

Source§

impl ToCursors for In

Source§

impl ToCursors for Khz

Source§

impl ToCursors for Lh

Source§

impl ToCursors for Lvb

Source§

impl ToCursors for Lvh

Source§

impl ToCursors for Lvi

Source§

impl ToCursors for Lvmax

Source§

impl ToCursors for Lvmin

Source§

impl ToCursors for Lvw

Source§

impl ToCursors for Mm

Source§

impl ToCursors for Ms

Source§

impl ToCursors for Pc

Source§

impl ToCursors for css_parse::token_macros::dimension::Percent

Source§

impl ToCursors for Pt

Source§

impl ToCursors for Px

Source§

impl ToCursors for Q

Source§

impl ToCursors for Rad

Source§

impl ToCursors for Rcap

Source§

impl ToCursors for Rch

Source§

impl ToCursors for Rem

Source§

impl ToCursors for Rex

Source§

impl ToCursors for Ric

Source§

impl ToCursors for Rlh

Source§

impl ToCursors for S

Source§

impl ToCursors for Svb

Source§

impl ToCursors for Svh

Source§

impl ToCursors for Svi

Source§

impl ToCursors for Svmax

Source§

impl ToCursors for Svmin

Source§

impl ToCursors for Svw

Source§

impl ToCursors for Turn

Source§

impl ToCursors for Vb

Source§

impl ToCursors for Vh

Source§

impl ToCursors for Vi

Source§

impl ToCursors for Vmax

Source§

impl ToCursors for Vmin

Source§

impl ToCursors for Vw

Source§

impl ToCursors for X

Source§

impl ToCursors for ColonColon

Source§

impl ToCursors for Any

Source§

impl ToCursors for AtKeyword

Source§

impl ToCursors for BadString

Source§

impl ToCursors for BadUrl

Source§

impl ToCursors for CdcOrCdo

Source§

impl ToCursors for Colon

Source§

impl ToCursors for Comma

Source§

impl ToCursors for Comment

Source§

impl ToCursors for DashedIdent

Source§

impl ToCursors for Delim

Source§

impl ToCursors for Dimension

Source§

impl ToCursors for DimensionIdent

Source§

impl ToCursors for Eof

Source§

impl ToCursors for css_parse::token_macros::Function

Source§

impl ToCursors for css_parse::token_macros::Hash

Source§

impl ToCursors for Ident

Source§

impl ToCursors for LeftCurly

Source§

impl ToCursors for LeftParen

Source§

impl ToCursors for LeftSquare

Source§

impl ToCursors for Number

Source§

impl ToCursors for PairWiseEnd

Source§

impl ToCursors for PairWiseStart

Source§

impl ToCursors for RightCurly

Source§

impl ToCursors for RightParen

Source§

impl ToCursors for RightSquare

Source§

impl ToCursors for Semicolon

Source§

impl ToCursors for String

Source§

impl ToCursors for Url

Source§

impl ToCursors for Whitespace

Source§

impl<'a> ToCursors for ComponentValue<'a>

Source§

impl<'a> ToCursors for BadDeclaration<'a>

Source§

impl<'a> ToCursors for ComponentValues<'a>

Source§

impl<'a> ToCursors for FunctionBlock<'a>

Source§

impl<'a> ToCursors for SimpleBlock<'a>

Source§

impl<'a> ToCursors for CaretEqual

Source§

impl<'a> ToCursors for DollarEqual

Source§

impl<'a> ToCursors for EqualEqual

Source§

impl<'a> ToCursors for GreaterThanEqual

Source§

impl<'a> ToCursors for LessThanEqual

Source§

impl<'a> ToCursors for PipeEqual

Source§

impl<'a> ToCursors for PipePipe

Source§

impl<'a> ToCursors for StarEqual

Source§

impl<'a> ToCursors for StarPipe

Source§

impl<'a> ToCursors for TildeEqual

Source§

impl<'a, A, B> ToCursors for Optionals2<A, B>
where A: ToCursors, B: ToCursors,

Source§

impl<'a, A, B, C> ToCursors for Optionals3<A, B, C>
where A: ToCursors, B: ToCursors, C: ToCursors,

Source§

impl<'a, A, B, C, D> ToCursors for Optionals4<A, B, C, D>
where A: ToCursors, B: ToCursors, C: ToCursors, D: ToCursors,

Source§

impl<'a, A, B, C, D, E> ToCursors for Optionals5<A, B, C, D, E>
where A: ToCursors, B: ToCursors, C: ToCursors, D: ToCursors, E: ToCursors,

Source§

impl<'a, D, R> ToCursors for Block<'a, D, R>

Source§

impl<'a, D, R> ToCursors for DeclarationRuleList<'a, D, R>

Source§

impl<'a, P, D, R> ToCursors for QualifiedRule<'a, P, D, R>

Source§

impl<'a, R: ToCursors> ToCursors for RuleList<'a, R>

Source§

impl<'a, T: ToCursors, const MIN: usize> ToCursors for CommaSeparated<'a, T, MIN>

Source§

impl<'a, V: DeclarationValue<'a> + ToCursors> ToCursors for Declaration<'a, V>

Source§

impl<'a, V: DeclarationValue<'a> + ToCursors> ToCursors for DeclarationList<'a, V>

Source§

impl<AT, P, B> ToCursors for AtRule<AT, P, B>
where AT: Into<AtKeyword>, P: ToCursors, B: ToCursors,

Source§

impl<FT, T> ToCursors for css_parse::syntax::Function<FT, T>
where FT: Into<Function>, T: ToCursors,

Source§

impl<T: ToCursors> ToCursors for ParserReturn<'_, T>