pub enum ConditionExpr {
And(Vec<ConditionExpr>),
Or(Vec<ConditionExpr>),
Not(Box<ConditionExpr>),
Identifier(String),
Selector {
quantifier: Quantifier,
pattern: SelectorPattern,
},
}Expand description
Parsed condition expression AST.
Produced by the PEG parser + Pratt parser from condition strings like
selection and not filter or 1 of selection_* and not 1 of filter_*.
Reference: pySigma conditions.py ConditionItem hierarchy
Variants§
And(Vec<ConditionExpr>)
Logical AND of sub-expressions.
Or(Vec<ConditionExpr>)
Logical OR of sub-expressions.
Not(Box<ConditionExpr>)
Logical NOT of a sub-expression.
Identifier(String)
Reference to a named detection identifier.
Selector
Quantified selector: 1 of selection_*, all of them, etc.
Trait Implementations§
Source§impl Clone for ConditionExpr
impl Clone for ConditionExpr
Source§fn clone(&self) -> ConditionExpr
fn clone(&self) -> ConditionExpr
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 ConditionExpr
impl Debug for ConditionExpr
Source§impl Display for ConditionExpr
impl Display for ConditionExpr
Source§impl PartialEq for ConditionExpr
impl PartialEq for ConditionExpr
Source§impl Serialize for ConditionExpr
impl Serialize for ConditionExpr
impl Eq for ConditionExpr
impl StructuralPartialEq for ConditionExpr
Auto Trait Implementations§
impl Freeze for ConditionExpr
impl RefUnwindSafe for ConditionExpr
impl Send for ConditionExpr
impl Sync for ConditionExpr
impl Unpin for ConditionExpr
impl UnsafeUnpin for ConditionExpr
impl UnwindSafe for ConditionExpr
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.