pub enum TestExpr {
FileTest {
op: FileTestOp,
path: Box<Expr>,
},
StringTest {
op: StringTestOp,
value: Box<Expr>,
},
Comparison {
left: Box<Expr>,
op: TestCmpOp,
right: Box<Expr>,
},
And {
left: Box<TestExpr>,
right: Box<TestExpr>,
},
Or {
left: Box<TestExpr>,
right: Box<TestExpr>,
},
Not {
expr: Box<TestExpr>,
},
}Expand description
Test expression for [[ ... ]] conditionals.
Variants§
FileTest
File test: [[ -f path ]], [[ -d path ]], etc.
StringTest
String test: [[ -z str ]], [[ -n str ]]
Comparison
Comparison: [[ $X == "value" ]], [[ $NUM -gt 5 ]]
And
Logical AND: [[ -f a && -d b ]] (short-circuit evaluation)
Or
Logical OR: [[ -f a || -d b ]] (short-circuit evaluation)
Not
Logical NOT: [[ ! -f file ]]
Trait Implementations§
impl StructuralPartialEq for TestExpr
Auto Trait Implementations§
impl Freeze for TestExpr
impl RefUnwindSafe for TestExpr
impl Send for TestExpr
impl Sync for TestExpr
impl Unpin for TestExpr
impl UnwindSafe for TestExpr
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more