Trait Build

Source
pub trait Build<'a>: Sized {
    // Required method
    fn build(p: &Parser<'a>, c: Cursor) -> Self;
}
Expand description

This trait allows AST nodes to construct themselves from a single Cursor from the Parser.

AST nodes that implement this should be able to infallably construct themsevles from the given cursor. It’s likely they’ll need to implement Peek to complete the contract: any AST node returning true from Peek should be able to parse the first token, and given this is a single token Node, Peek effectively demonstrates it can construct itself completely, when true.

Required Methods§

Source

fn build(p: &Parser<'a>, c: Cursor) -> Self

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.

Implementors§

Source§

impl<'a> Build<'a> for ConditionKeyword

Source§

impl<'a> Build<'a> for And

Source§

impl<'a> Build<'a> for At

Source§

impl<'a> Build<'a> for Backtick

Source§

impl<'a> Build<'a> for Bang

Source§

impl<'a> Build<'a> for Caret

Source§

impl<'a> Build<'a> for Dash

Source§

impl<'a> Build<'a> for Dollar

Source§

impl<'a> Build<'a> for Dot

Source§

impl<'a> Build<'a> for Eq

Source§

impl<'a> Build<'a> for Gt

Source§

impl<'a> Build<'a> for css_parse::token_macros::delim::Hash

Source§

impl<'a> Build<'a> for Lt

Source§

impl<'a> Build<'a> for Or

Source§

impl<'a> Build<'a> for css_parse::token_macros::delim::Percent

Source§

impl<'a> Build<'a> for Plus

Source§

impl<'a> Build<'a> for Question

Source§

impl<'a> Build<'a> for Slash

Source§

impl<'a> Build<'a> for Star

Source§

impl<'a> Build<'a> for Tilde

Source§

impl<'a> Build<'a> for Underscore

Source§

impl<'a> Build<'a> for Cap

Source§

impl<'a> Build<'a> for Ch

Source§

impl<'a> Build<'a> for Cm

Source§

impl<'a> Build<'a> for Cqb

Source§

impl<'a> Build<'a> for Cqh

Source§

impl<'a> Build<'a> for Cqi

Source§

impl<'a> Build<'a> for Cqmax

Source§

impl<'a> Build<'a> for Cqmin

Source§

impl<'a> Build<'a> for Cqw

Source§

impl<'a> Build<'a> for Db

Source§

impl<'a> Build<'a> for Deg

Source§

impl<'a> Build<'a> for Dpcm

Source§

impl<'a> Build<'a> for Dpi

Source§

impl<'a> Build<'a> for Dppx

Source§

impl<'a> Build<'a> for Dvb

Source§

impl<'a> Build<'a> for Dvh

Source§

impl<'a> Build<'a> for Dvi

Source§

impl<'a> Build<'a> for Dvmax

Source§

impl<'a> Build<'a> for Dvmin

Source§

impl<'a> Build<'a> for Dvw

Source§

impl<'a> Build<'a> for Em

Source§

impl<'a> Build<'a> for Ex

Source§

impl<'a> Build<'a> for Fr

Source§

impl<'a> Build<'a> for Grad

Source§

impl<'a> Build<'a> for Hz

Source§

impl<'a> Build<'a> for Ic

Source§

impl<'a> Build<'a> for In

Source§

impl<'a> Build<'a> for Khz

Source§

impl<'a> Build<'a> for Lh

Source§

impl<'a> Build<'a> for Lvb

Source§

impl<'a> Build<'a> for Lvh

Source§

impl<'a> Build<'a> for Lvi

Source§

impl<'a> Build<'a> for Lvmax

Source§

impl<'a> Build<'a> for Lvmin

Source§

impl<'a> Build<'a> for Lvw

Source§

impl<'a> Build<'a> for Mm

Source§

impl<'a> Build<'a> for Ms

Source§

impl<'a> Build<'a> for Pc

Source§

impl<'a> Build<'a> for css_parse::token_macros::dimension::Percent

Source§

impl<'a> Build<'a> for Pt

Source§

impl<'a> Build<'a> for Px

Source§

impl<'a> Build<'a> for Q

Source§

impl<'a> Build<'a> for Rad

Source§

impl<'a> Build<'a> for Rcap

Source§

impl<'a> Build<'a> for Rch

Source§

impl<'a> Build<'a> for Rem

Source§

impl<'a> Build<'a> for Rex

Source§

impl<'a> Build<'a> for Ric

Source§

impl<'a> Build<'a> for Rlh

Source§

impl<'a> Build<'a> for S

Source§

impl<'a> Build<'a> for Svb

Source§

impl<'a> Build<'a> for Svh

Source§

impl<'a> Build<'a> for Svi

Source§

impl<'a> Build<'a> for Svmax

Source§

impl<'a> Build<'a> for Svmin

Source§

impl<'a> Build<'a> for Svw

Source§

impl<'a> Build<'a> for Turn

Source§

impl<'a> Build<'a> for Vb

Source§

impl<'a> Build<'a> for Vh

Source§

impl<'a> Build<'a> for Vi

Source§

impl<'a> Build<'a> for Vmax

Source§

impl<'a> Build<'a> for Vmin

Source§

impl<'a> Build<'a> for Vw

Source§

impl<'a> Build<'a> for X

Source§

impl<'a> Build<'a> for Any

Source§

impl<'a> Build<'a> for AtKeyword

Source§

impl<'a> Build<'a> for BadString

Source§

impl<'a> Build<'a> for BadUrl

Source§

impl<'a> Build<'a> for CdcOrCdo

Source§

impl<'a> Build<'a> for Colon

Source§

impl<'a> Build<'a> for Comma

Source§

impl<'a> Build<'a> for Comment

Source§

impl<'a> Build<'a> for DashedIdent

Source§

impl<'a> Build<'a> for Delim

Source§

impl<'a> Build<'a> for Dimension

Source§

impl<'a> Build<'a> for DimensionIdent

Source§

impl<'a> Build<'a> for Eof

Source§

impl<'a> Build<'a> for Function

Source§

impl<'a> Build<'a> for css_parse::token_macros::Hash

Source§

impl<'a> Build<'a> for Ident

Source§

impl<'a> Build<'a> for LeftCurly

Source§

impl<'a> Build<'a> for LeftParen

Source§

impl<'a> Build<'a> for LeftSquare

Source§

impl<'a> Build<'a> for Number

Source§

impl<'a> Build<'a> for PairWiseEnd

Source§

impl<'a> Build<'a> for PairWiseStart

Source§

impl<'a> Build<'a> for RightCurly

Source§

impl<'a> Build<'a> for RightParen

Source§

impl<'a> Build<'a> for RightSquare

Source§

impl<'a> Build<'a> for Semicolon

Source§

impl<'a> Build<'a> for String

Source§

impl<'a> Build<'a> for Url