Trait predicates_core::Predicate [−][src]
pub trait Predicate<Item: ?Sized>: PredicateReflection { fn eval(&self, variable: &Item) -> bool; fn find_case<'a>(
&'a self,
expected: bool,
variable: &Item
) -> Option<Case<'a>> { ... } }
Trait for generically evaluating a type against a dynamically created predicate function.
The exact meaning of eval depends on the situation, but will usually
mean that the evaluated item is in some sort of pre-defined set. This is
different from Ord and Eq in that an item will almost never be the
same type as the implementing Predicate type.
Required Methods
fn eval(&self, variable: &Item) -> bool
Execute this Predicate against variable, returning the resulting
boolean.
Provided Methods
fn find_case<'a>(&'a self, expected: bool, variable: &Item) -> Option<Case<'a>>
Find a case that proves this predicate as expected when run against variable.