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 Cursor

Source§

impl ToCursors for BangImportant

Source§

impl ToCursors for NoBlockAllowed

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 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 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 Eof

Source§

impl ToCursors for 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, M> ToCursors for Block<'a, D, R, M>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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