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>> { ... } }
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.

Required Methods

Execute this Predicate against variable, returning the resulting boolean.

Provided Methods

Find a case that proves this predicate as expected when run against variable.

Implementors