pub enum LogicalOperator {
All,
Any,
Exactly(usize),
AtLeast(usize),
AtMost(usize),
}Expand description
Logical operators for combining multiple boolean results.
These operators define how to evaluate constraint results across multiple columns or multiple constraint evaluations.
§Examples
use term_guard::core::LogicalOperator;
// All columns must satisfy the constraint
let all = LogicalOperator::All;
// At least one column must satisfy
let any = LogicalOperator::Any;
// Exactly 2 columns must satisfy
let exactly_two = LogicalOperator::Exactly(2);
// At least 3 columns must satisfy
let at_least_three = LogicalOperator::AtLeast(3);Variants§
All
All values must satisfy the condition (AND logic)
Any
At least one value must satisfy the condition (OR logic)
Exactly(usize)
Exactly N values must satisfy the condition
AtLeast(usize)
At least N values must satisfy the condition
AtMost(usize)
At most N values must satisfy the condition
Implementations§
Source§impl LogicalOperator
impl LogicalOperator
Sourcepub fn evaluate(&self, results: &[bool]) -> bool
pub fn evaluate(&self, results: &[bool]) -> bool
Evaluates a slice of boolean results according to this operator.
§Arguments
results- A slice of boolean values to evaluate
§Returns
true if the results satisfy the operator’s condition, false otherwise
§Examples
use term_guard::core::LogicalOperator;
let results = vec![true, false, true];
assert!(LogicalOperator::Any.evaluate(&results));
assert!(!LogicalOperator::All.evaluate(&results));
assert!(LogicalOperator::Exactly(2).evaluate(&results));
assert!(LogicalOperator::AtLeast(1).evaluate(&results));
assert!(LogicalOperator::AtMost(2).evaluate(&results));Sourcepub fn description(&self) -> String
pub fn description(&self) -> String
Returns a human-readable description of the operator.
Trait Implementations§
Source§impl Clone for LogicalOperator
impl Clone for LogicalOperator
Source§fn clone(&self) -> LogicalOperator
fn clone(&self) -> LogicalOperator
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 LogicalOperator
impl Debug for LogicalOperator
Source§impl Display for LogicalOperator
impl Display for LogicalOperator
Source§impl PartialEq for LogicalOperator
impl PartialEq for LogicalOperator
impl Copy for LogicalOperator
impl Eq for LogicalOperator
impl StructuralPartialEq for LogicalOperator
Auto Trait Implementations§
impl Freeze for LogicalOperator
impl RefUnwindSafe for LogicalOperator
impl Send for LogicalOperator
impl Sync for LogicalOperator
impl Unpin for LogicalOperator
impl UnwindSafe for LogicalOperator
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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