pub enum Syntax {
Show 66 variants
    IdentifierPattern {
        name: SourceRange,
    },
    ArrayPattern {
        elements: Vec<Option<ArrayPatternElement>>,
        rest: Option<NodeId>,
    },
    ObjectPattern {
        properties: Vec<NodeId>,
        rest: Option<NodeId>,
    },
    ClassOrFunctionName {
        name: SourceRange,
    },
    FunctionSignature {
        parameters: Vec<NodeId>,
    },
    ClassDecl {
        name: Option<NodeId>,
        extends: Option<NodeId>,
        members: Vec<ClassMember>,
    },
    FunctionDecl {
        generator: bool,
        is_async: bool,
        name: Option<NodeId>,
        signature: NodeId,
        body: NodeId,
    },
    ParamDecl {
        rest: bool,
        pattern: NodeId,
        default_value: Option<NodeId>,
    },
    VarDecl {
        mode: VarDeclMode,
        declarators: Vec<VariableDeclarator>,
    },
    ArrowFunctionExpr {
        is_async: bool,
        signature: NodeId,
        body: NodeId,
    },
    BinaryExpr {
        parenthesised: bool,
        operator: OperatorName,
        left: NodeId,
        right: NodeId,
    },
    CallExpr {
        optional_chaining: bool,
        parenthesised: bool,
        callee: NodeId,
        arguments: Vec<NodeId>,
    },
    ClassExpr {
        parenthesised: bool,
        name: Option<NodeId>,
        extends: Option<NodeId>,
        members: Vec<ClassMember>,
    },
    ConditionalExpr {
        parenthesised: bool,
        test: NodeId,
        consequent: NodeId,
        alternate: NodeId,
    },
    ComputedMemberExpr {
        optional_chaining: bool,
        object: NodeId,
        member: NodeId,
    },
    FunctionExpr {
        parenthesised: bool,
        is_async: bool,
        generator: bool,
        name: Option<NodeId>,
        signature: NodeId,
        body: NodeId,
    },
    IdentifierExpr {
        name: SourceRange,
    },
    ImportExpr {
        module: NodeId,
    },
    ImportMeta {},
    JsxAttribute {
        name: NodeId,
        value: Option<NodeId>,
    },
    JsxElement {
        name: Option<NodeId>,
        attributes: Vec<NodeId>,
        children: Vec<NodeId>,
    },
    JsxExpressionContainer {
        value: NodeId,
    },
    JsxMember {
        base: SourceRange,
        path: Vec<SourceRange>,
    },
    JsxName {
        namespace: Option<SourceRange>,
        name: SourceRange,
    },
    JsxSpreadAttribute {
        value: NodeId,
    },
    JsxText {
        value: SourceRange,
    },
    LiteralArrayExpr {
        elements: Vec<ArrayElement>,
    },
    LiteralBooleanExpr {
        value: bool,
    },
    LiteralNull {},
    LiteralNumberExpr {
        value: JsNumber,
    },
    LiteralObjectExpr {
        members: Vec<NodeId>,
    },
    LiteralRegexExpr {},
    LiteralStringExpr {
        value: String,
    },
    LiteralTemplateExpr {
        parts: Vec<LiteralTemplatePart>,
    },
    LiteralUndefined {},
    MemberExpr {
        parenthesised: bool,
        optional_chaining: bool,
        left: NodeId,
        right: SourceRange,
    },
    SuperExpr {},
    ThisExpr {},
    UnaryExpr {
        parenthesised: bool,
        operator: OperatorName,
        argument: NodeId,
    },
    UnaryPostfixExpr {
        parenthesised: bool,
        operator: OperatorName,
        argument: NodeId,
    },
    BlockStmt {
        body: Vec<NodeId>,
    },
    BreakStmt {
        label: Option<SourceRange>,
    },
    ContinueStmt {
        label: Option<SourceRange>,
    },
    DebuggerStmt {},
    DoWhileStmt {
        condition: NodeId,
        body: NodeId,
    },
    EmptyStmt {},
    ExportDeclStmt {
        declaration: NodeId,
        default: bool,
    },
    ExportDefaultExprStmt {
        expression: NodeId,
    },
    ExportListStmt {
        names: ExportNames,
        from: Option<String>,
    },
    ExpressionStmt {
        expression: NodeId,
    },
    IfStmt {
        test: NodeId,
        consequent: NodeId,
        alternate: Option<NodeId>,
    },
    ImportStmt {
        default: Option<NodeId>,
        names: Option<ExportNames>,
        module: String,
    },
    ForStmt {
        header: ForStmtHeader,
        body: NodeId,
    },
    LabelStmt {
        name: SourceRange,
        statement: NodeId,
    },
    ReturnStmt {
        value: Option<NodeId>,
    },
    SwitchStmt {
        test: NodeId,
        branches: Vec<NodeId>,
    },
    ThrowStmt {
        value: NodeId,
    },
    TryStmt {
        wrapped: NodeId,
        catch: Option<NodeId>,
        finally: Option<NodeId>,
    },
    VarStmt {
        declaration: NodeId,
    },
    WhileStmt {
        condition: NodeId,
        body: NodeId,
    },
    TopLevel {
        body: Vec<NodeId>,
    },
    CallArg {
        spread: bool,
        value: NodeId,
    },
    CatchBlock {
        parameter: Option<NodeId>,
        body: NodeId,
    },
    ObjectMember {
        typ: ObjectMemberType,
    },
    ObjectPatternProperty {
        key: ClassOrObjectMemberKey,
        target: Option<NodeId>,
        default_value: Option<NodeId>,
    },
    SwitchBranch {
        case: Option<NodeId>,
        body: Vec<NodeId>,
    },
}Variants
IdentifierPattern
Fields
name: SourceRangeArrayPattern
ObjectPattern
ClassOrFunctionName
Fields
name: SourceRangeFunctionSignature
ClassDecl
FunctionDecl
ParamDecl
VarDecl
ArrowFunctionExpr
BinaryExpr
CallExpr
ClassExpr
ConditionalExpr
ComputedMemberExpr
FunctionExpr
IdentifierExpr
Fields
name: SourceRangeImportExpr
Fields
module: NodeIdImportMeta
Fields
JsxAttribute
JsxElement
JsxExpressionContainer
Fields
value: NodeIdJsxMember
JsxName
JsxSpreadAttribute
Fields
value: NodeIdJsxText
Fields
value: SourceRangeLiteralArrayExpr
Fields
elements: Vec<ArrayElement>LiteralBooleanExpr
Fields
value: boolLiteralNull
Fields
LiteralNumberExpr
Fields
value: JsNumberLiteralObjectExpr
LiteralRegexExpr
Fields
LiteralStringExpr
Fields
value: StringLiteralTemplateExpr
Fields
parts: Vec<LiteralTemplatePart>LiteralUndefined
Fields
MemberExpr
SuperExpr
Fields
ThisExpr
Fields
UnaryExpr
UnaryPostfixExpr
BlockStmt
BreakStmt
Fields
label: Option<SourceRange>ContinueStmt
Fields
label: Option<SourceRange>DebuggerStmt
Fields
DoWhileStmt
EmptyStmt
Fields
ExportDeclStmt
ExportDefaultExprStmt
Fields
expression: NodeIdExportListStmt
ExpressionStmt
Fields
expression: NodeIdIfStmt
ImportStmt
ForStmt
LabelStmt
ReturnStmt
SwitchStmt
ThrowStmt
Fields
value: NodeIdTryStmt
VarStmt
Fields
declaration: NodeIdWhileStmt
TopLevel
CallArg
CatchBlock
ObjectMember
Fields
typ: ObjectMemberTypeObjectPatternProperty
SwitchBranch
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Syntax
impl !Send for Syntax
impl !Sync for Syntax
impl Unpin for Syntax
impl UnwindSafe for Syntax
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more