pub enum StmtKind<'arena, 'src> {
Show 32 variants
Expression(&'arena Expr<'arena, 'src>),
Echo(ArenaVec<'arena, Expr<'arena, 'src>>),
Return(Option<&'arena Expr<'arena, 'src>>),
Block(ArenaVec<'arena, Stmt<'arena, 'src>>),
If(&'arena IfStmt<'arena, 'src>),
While(&'arena WhileStmt<'arena, 'src>),
For(&'arena ForStmt<'arena, 'src>),
Foreach(&'arena ForeachStmt<'arena, 'src>),
DoWhile(&'arena DoWhileStmt<'arena, 'src>),
Function(&'arena FunctionDecl<'arena, 'src>),
Break(Option<&'arena Expr<'arena, 'src>>),
Continue(Option<&'arena Expr<'arena, 'src>>),
Switch(&'arena SwitchStmt<'arena, 'src>),
Goto(&'src str),
Label(&'src str),
Declare(&'arena DeclareStmt<'arena, 'src>),
Unset(ArenaVec<'arena, Expr<'arena, 'src>>),
Throw(&'arena Expr<'arena, 'src>),
TryCatch(&'arena TryCatchStmt<'arena, 'src>),
Global(ArenaVec<'arena, Expr<'arena, 'src>>),
Class(&'arena ClassDecl<'arena, 'src>),
Interface(&'arena InterfaceDecl<'arena, 'src>),
Trait(&'arena TraitDecl<'arena, 'src>),
Enum(&'arena EnumDecl<'arena, 'src>),
Namespace(&'arena NamespaceDecl<'arena, 'src>),
Use(&'arena UseDecl<'arena, 'src>),
Const(ArenaVec<'arena, ConstItem<'arena, 'src>>),
StaticVar(ArenaVec<'arena, StaticVar<'arena, 'src>>),
HaltCompiler(&'src str),
Nop,
InlineHtml(&'src str),
Error,
}Variants§
Expression(&'arena Expr<'arena, 'src>)
Expression statement (e.g. foo();)
Echo(ArenaVec<'arena, Expr<'arena, 'src>>)
Echo statement: echo expr1, expr2;
Return(Option<&'arena Expr<'arena, 'src>>)
Return statement: return expr;
Block(ArenaVec<'arena, Stmt<'arena, 'src>>)
Block statement: { stmts }
If(&'arena IfStmt<'arena, 'src>)
If statement
While(&'arena WhileStmt<'arena, 'src>)
While loop
For(&'arena ForStmt<'arena, 'src>)
For loop
Foreach(&'arena ForeachStmt<'arena, 'src>)
Foreach loop
DoWhile(&'arena DoWhileStmt<'arena, 'src>)
Do-while loop
Function(&'arena FunctionDecl<'arena, 'src>)
Function declaration
Break(Option<&'arena Expr<'arena, 'src>>)
Break statement
Continue(Option<&'arena Expr<'arena, 'src>>)
Continue statement
Switch(&'arena SwitchStmt<'arena, 'src>)
Switch statement
Goto(&'src str)
Goto statement
Label(&'src str)
Label statement
Declare(&'arena DeclareStmt<'arena, 'src>)
Declare statement
Unset(ArenaVec<'arena, Expr<'arena, 'src>>)
Unset statement
Throw(&'arena Expr<'arena, 'src>)
Throw statement (also can be expression in PHP 8)
TryCatch(&'arena TryCatchStmt<'arena, 'src>)
Try/catch/finally
Global(ArenaVec<'arena, Expr<'arena, 'src>>)
Global declaration
Class(&'arena ClassDecl<'arena, 'src>)
Class declaration
Interface(&'arena InterfaceDecl<'arena, 'src>)
Interface declaration
Trait(&'arena TraitDecl<'arena, 'src>)
Trait declaration
Enum(&'arena EnumDecl<'arena, 'src>)
Enum declaration
Namespace(&'arena NamespaceDecl<'arena, 'src>)
Namespace declaration
Use(&'arena UseDecl<'arena, 'src>)
Use declaration
Const(ArenaVec<'arena, ConstItem<'arena, 'src>>)
Top-level constant: const FOO = expr;
StaticVar(ArenaVec<'arena, StaticVar<'arena, 'src>>)
Static variable declaration: static $x = 1;
HaltCompiler(&'src str)
__halt_compiler(); with remaining data
Nop
Nop (empty statement ;)
InlineHtml(&'src str)
Inline HTML
Error
Error placeholder — parser always produces a tree
Trait Implementations§
Auto Trait Implementations§
impl<'arena, 'src> Freeze for StmtKind<'arena, 'src>
impl<'arena, 'src> !RefUnwindSafe for StmtKind<'arena, 'src>
impl<'arena, 'src> !Send for StmtKind<'arena, 'src>
impl<'arena, 'src> !Sync for StmtKind<'arena, 'src>
impl<'arena, 'src> Unpin for StmtKind<'arena, 'src>
impl<'arena, 'src> UnsafeUnpin for StmtKind<'arena, 'src>
impl<'arena, 'src> !UnwindSafe for StmtKind<'arena, 'src>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more