//! Generated by `cargo codegen grammar`, do not edit by hand. #![allow(non_snake_case)] use crate::{ ast::{self, support, AstChildren, AstNode}, SyntaxKind::{self, *}, SyntaxNode, SyntaxToken, T, }; #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Abi { pub(crate) syntax: SyntaxNode, } impl Abi { #[inline] pub fn extern_token(&self) -> Option { support::token(&self.syntax, T![extern]) } #[inline] pub fn string_token(&self) -> Option { support::token(&self.syntax, T![string]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct ArgList { pub(crate) syntax: SyntaxNode, } impl ArgList { #[inline] pub fn l_paren_token(&self) -> Option { support::token(&self.syntax, T!['(']) } #[inline] pub fn r_paren_token(&self) -> Option { support::token(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct ArrayExpr { pub(crate) syntax: SyntaxNode, } impl ast::HasAttrs for ArrayExpr {} impl ArrayExpr { #[inline] pub fn expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn exprs(&self) -> AstChildren { support::children(&self.syntax) } #[inline] pub fn l_brack_token(&self) -> Option { support::token(&self.syntax, T!['[']) } #[inline] pub fn r_brack_token(&self) -> Option { support::token(&self.syntax, T![']']) } #[inline] pub fn semicolon_token(&self) -> Option { support::token(&self.syntax, T![;]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct ArrayType { pub(crate) syntax: SyntaxNode, } impl ArrayType { #[inline] pub fn const_arg(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn ty(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn l_brack_token(&self) -> Option { support::token(&self.syntax, T!['[']) } #[inline] pub fn r_brack_token(&self) -> Option { support::token(&self.syntax, T![']']) } #[inline] pub fn semicolon_token(&self) -> Option { support::token(&self.syntax, T![;]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmClobberAbi { pub(crate) syntax: SyntaxNode, } impl AsmClobberAbi { #[inline] pub fn l_paren_token(&self) -> Option { support::token(&self.syntax, T!['(']) } #[inline] pub fn r_paren_token(&self) -> Option { support::token(&self.syntax, T![')']) } #[inline] pub fn clobber_abi_token(&self) -> Option { support::token(&self.syntax, T![clobber_abi]) } #[inline] pub fn string_token(&self) -> Option { support::token(&self.syntax, T![string]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmConst { pub(crate) syntax: SyntaxNode, } impl AsmConst { #[inline] pub fn expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn const_token(&self) -> Option { support::token(&self.syntax, T![const]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmDirSpec { pub(crate) syntax: SyntaxNode, } impl AsmDirSpec { #[inline] pub fn in_token(&self) -> Option { support::token(&self.syntax, T![in]) } #[inline] pub fn inlateout_token(&self) -> Option { support::token(&self.syntax, T![inlateout]) } #[inline] pub fn inout_token(&self) -> Option { support::token(&self.syntax, T![inout]) } #[inline] pub fn lateout_token(&self) -> Option { support::token(&self.syntax, T![lateout]) } #[inline] pub fn out_token(&self) -> Option { support::token(&self.syntax, T![out]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmExpr { pub(crate) syntax: SyntaxNode, } impl ast::HasAttrs for AsmExpr {} impl AsmExpr { #[inline] pub fn asm_pieces(&self) -> AstChildren { support::children(&self.syntax) } #[inline] pub fn template(&self) -> AstChildren { support::children(&self.syntax) } #[inline] pub fn pound_token(&self) -> Option { support::token(&self.syntax, T![#]) } #[inline] pub fn l_paren_token(&self) -> Option { support::token(&self.syntax, T!['(']) } #[inline] pub fn r_paren_token(&self) -> Option { support::token(&self.syntax, T![')']) } #[inline] pub fn comma_token(&self) -> Option { support::token(&self.syntax, T![,]) } #[inline] pub fn asm_token(&self) -> Option { support::token(&self.syntax, T![asm]) } #[inline] pub fn builtin_token(&self) -> Option { support::token(&self.syntax, T![builtin]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmLabel { pub(crate) syntax: SyntaxNode, } impl AsmLabel { #[inline] pub fn block_expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn label_token(&self) -> Option { support::token(&self.syntax, T![label]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmOperandExpr { pub(crate) syntax: SyntaxNode, } impl AsmOperandExpr { #[inline] pub fn in_expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn out_expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn fat_arrow_token(&self) -> Option { support::token(&self.syntax, T![=>]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmOperandNamed { pub(crate) syntax: SyntaxNode, } impl ast::HasName for AsmOperandNamed {} impl AsmOperandNamed { #[inline] pub fn asm_operand(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn eq_token(&self) -> Option { support::token(&self.syntax, T![=]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmOption { pub(crate) syntax: SyntaxNode, } impl AsmOption { #[inline] pub fn att_syntax_token(&self) -> Option { support::token(&self.syntax, T![att_syntax]) } #[inline] pub fn may_unwind_token(&self) -> Option { support::token(&self.syntax, T![may_unwind]) } #[inline] pub fn nomem_token(&self) -> Option { support::token(&self.syntax, T![nomem]) } #[inline] pub fn noreturn_token(&self) -> Option { support::token(&self.syntax, T![noreturn]) } #[inline] pub fn nostack_token(&self) -> Option { support::token(&self.syntax, T![nostack]) } #[inline] pub fn preserves_flags_token(&self) -> Option { support::token(&self.syntax, T![preserves_flags]) } #[inline] pub fn pure_token(&self) -> Option { support::token(&self.syntax, T![pure]) } #[inline] pub fn raw_token(&self) -> Option { support::token(&self.syntax, T![raw]) } #[inline] pub fn readonly_token(&self) -> Option { support::token(&self.syntax, T![readonly]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmOptions { pub(crate) syntax: SyntaxNode, } impl AsmOptions { #[inline] pub fn asm_option(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn asm_options(&self) -> AstChildren { support::children(&self.syntax) } #[inline] pub fn l_paren_token(&self) -> Option { support::token(&self.syntax, T!['(']) } #[inline] pub fn r_paren_token(&self) -> Option { support::token(&self.syntax, T![')']) } #[inline] pub fn comma_token(&self) -> Option { support::token(&self.syntax, T![,]) } #[inline] pub fn options_token(&self) -> Option { support::token(&self.syntax, T![options]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmRegOperand { pub(crate) syntax: SyntaxNode, } impl AsmRegOperand { #[inline] pub fn asm_dir_spec(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn asm_operand_expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn asm_reg_spec(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn l_paren_token(&self) -> Option { support::token(&self.syntax, T!['(']) } #[inline] pub fn r_paren_token(&self) -> Option { support::token(&self.syntax, T![')']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmRegSpec { pub(crate) syntax: SyntaxNode, } impl AsmRegSpec { #[inline] pub fn name_ref(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn string_token(&self) -> Option { support::token(&self.syntax, T![string]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AsmSym { pub(crate) syntax: SyntaxNode, } impl AsmSym { #[inline] pub fn path(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn sym_token(&self) -> Option { support::token(&self.syntax, T![sym]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AssocItemList { pub(crate) syntax: SyntaxNode, } impl ast::HasAttrs for AssocItemList {} impl AssocItemList { #[inline] pub fn assoc_items(&self) -> AstChildren { support::children(&self.syntax) } #[inline] pub fn l_curly_token(&self) -> Option { support::token(&self.syntax, T!['{']) } #[inline] pub fn r_curly_token(&self) -> Option { support::token(&self.syntax, T!['}']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AssocTypeArg { pub(crate) syntax: SyntaxNode, } impl ast::HasGenericArgs for AssocTypeArg {} impl ast::HasTypeBounds for AssocTypeArg {} impl AssocTypeArg { #[inline] pub fn const_arg(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn name_ref(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn param_list(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn ret_type(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn return_type_syntax(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn ty(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn eq_token(&self) -> Option { support::token(&self.syntax, T![=]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Attr { pub(crate) syntax: SyntaxNode, } impl Attr { #[inline] pub fn meta(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn excl_token(&self) -> Option { support::token(&self.syntax, T![!]) } #[inline] pub fn pound_token(&self) -> Option { support::token(&self.syntax, T![#]) } #[inline] pub fn l_brack_token(&self) -> Option { support::token(&self.syntax, T!['[']) } #[inline] pub fn r_brack_token(&self) -> Option { support::token(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct AwaitExpr { pub(crate) syntax: SyntaxNode, } impl ast::HasAttrs for AwaitExpr {} impl AwaitExpr { #[inline] pub fn expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn dot_token(&self) -> Option { support::token(&self.syntax, T![.]) } #[inline] pub fn await_token(&self) -> Option { support::token(&self.syntax, T![await]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct BecomeExpr { pub(crate) syntax: SyntaxNode, } impl ast::HasAttrs for BecomeExpr {} impl BecomeExpr { #[inline] pub fn expr(&self) -> Option { support::child(&self.syntax) } #[inline] pub fn become_token(&self) -> Option { support::token(&self.syntax, T![become]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct BinExpr { pub(crate) syntax: SyntaxNode, } impl ast::HasAttrs for BinExpr {} impl BinExpr {} #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct BlockExpr { pub(crate) syntax: SyntaxNode, } impl ast::HasAttrs for BlockExpr {} impl BlockExpr { #[inline] pub fn label(&self) -> Option