pub enum BashStatement {
Show 23 variants
Assign(String, BashExpr),
Local(String, Option<BashExpr>),
Export(String, BashExpr),
Readonly(String, BashExpr),
Declare(String, String, Option<BashExpr>),
Cmd(String),
If {
cond: BashCondition,
then: Vec<BashStatement>,
elifs: Vec<(BashCondition, Vec<BashStatement>)>,
else_: Option<Vec<BashStatement>>,
},
While {
cond: BashCondition,
body: Vec<BashStatement>,
},
For {
var: String,
in_: Vec<BashExpr>,
body: Vec<BashStatement>,
},
ForArith {
init: String,
cond: String,
incr: String,
body: Vec<BashStatement>,
},
Case {
expr: BashExpr,
arms: Vec<(String, Vec<BashStatement>)>,
},
Call(String, Vec<BashExpr>),
Return(Option<u8>),
Break,
Continue,
Echo(BashExpr),
Printf(String, Vec<BashExpr>),
Read(Vec<String>),
Exit(u8),
Raw(String),
Pipe(Vec<String>),
Trap(String, String),
Source(String),
}Expand description
A Bash statement (line or block).
Variants§
Assign(String, BashExpr)
Variable assignment: name=value
Local(String, Option<BashExpr>)
Local variable declaration: local name=value
Export(String, BashExpr)
Exported variable: export NAME=value
Readonly(String, BashExpr)
Readonly variable: readonly NAME=value
Declare(String, String, Option<BashExpr>)
Declare with flags: declare -flags name=value
Cmd(String)
Command invocation (raw line)
If
If/elif/else block
Fields
§
cond: BashCondition§
then: Vec<BashStatement>§
elifs: Vec<(BashCondition, Vec<BashStatement>)>§
else_: Option<Vec<BashStatement>>While
While loop
For
For-in loop: for var in list; do ... done
ForArith
C-style for loop: for (( init; cond; incr ))
Case
case statement
Call(String, Vec<BashExpr>)
Function call
Return(Option<u8>)
Return statement
Break
break
Continue
continue
Echo(BashExpr)
echo output
Printf(String, Vec<BashExpr>)
printf formatted output
Read(Vec<String>)
read input
Exit(u8)
exit with code
Raw(String)
Raw statement string (fallback)
Pipe(Vec<String>)
Pipe: cmd1 | cmd2
Trap(String, String)
Trap: trap 'handler' SIGNAL
Source(String)
Source file: . file or source file
Trait Implementations§
Source§impl Clone for BashStatement
impl Clone for BashStatement
Source§fn clone(&self) -> BashStatement
fn clone(&self) -> BashStatement
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BashStatement
impl Debug for BashStatement
Source§impl PartialEq for BashStatement
impl PartialEq for BashStatement
impl StructuralPartialEq for BashStatement
Auto Trait Implementations§
impl Freeze for BashStatement
impl RefUnwindSafe for BashStatement
impl Send for BashStatement
impl Sync for BashStatement
impl Unpin for BashStatement
impl UnsafeUnpin for BashStatement
impl UnwindSafe for BashStatement
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