use crate::backend::Assertion;
use crate::backend::LogicalOp;
pub trait AndModifier<T> {
fn and(self) -> Self;
}
impl<T: Clone> AndModifier<T> for Assertion<T> {
fn and(self) -> Self {
let mut result = self;
result.mark_as_intermediate();
result.set_last_logic(LogicalOp::And);
return Self {
value: result.value.clone(),
expr_str: result.expr_str,
negated: result.negated,
steps: result.steps.clone(),
in_chain: true, is_final: false, };
}
}
#[cfg(test)]
mod tests {
use crate::prelude::*;
#[test]
fn test_and_modifier() {
crate::Reporter::disable_deduplication();
let value = 42;
expect!(value).to_be_greater_than(30).and().to_be_less_than(50);
}
}