pub trait Predicate<Item: ?Sized>: PredicateReflection {
// Required method
fn eval(&self, variable: &Item) -> bool;
// Provided method
fn find_case<'a>(
&'a self,
expected: bool,
variable: &Item,
) -> Option<Case<'a>> { ... }
}
Expand description
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.