Skip to main content

Predicate

Trait Predicate 

Source
pub trait Predicate<Item>: PredicateReflection
where Item: ?Sized,
{ // 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.

Required Methods§

Source

fn eval(&self, variable: &Item) -> bool

Execute this Predicate against variable, returning the resulting boolean.

Provided Methods§

Source

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Predicate<Path> for BinaryFilePredicate

Source§

impl Predicate<Path> for ExistencePredicate

Source§

impl Predicate<Path> for FileTypePredicate

Source§

impl Predicate<Path> for StrFilePredicate

Source§

impl Predicate<[u8]> for BinaryFilePredicate

Source§

impl Predicate<str> for ContainsPredicate

Source§

impl Predicate<str> for EndsWithPredicate

Source§

impl Predicate<str> for IsEmptyPredicate

Source§

impl Predicate<str> for MatchesPredicate

Source§

impl Predicate<str> for StartsWithPredicate

Source§

impl Predicate<str> for StrFilePredicate

Source§

impl<F, T> Predicate<T> for FnPredicate<F, T>
where F: Fn(&T) -> bool, T: ?Sized,

Source§

impl<Item: ?Sized> Predicate<Item> for BooleanPredicate

Source§

impl<Item> Predicate<Item> for BoxPredicate<Item>
where Item: ?Sized,

Source§

impl<M1, M2, Item> Predicate<Item> for AndPredicate<M1, M2, Item>
where M1: Predicate<Item>, M2: Predicate<Item>, Item: ?Sized,

Source§

impl<M1, M2, Item> Predicate<Item> for OrPredicate<M1, M2, Item>
where M1: Predicate<Item>, M2: Predicate<Item>, Item: ?Sized,

Source§

impl<M, Item> Predicate<Item> for NamePredicate<M, Item>
where M: Predicate<Item>, Item: ?Sized,

Source§

impl<M, Item> Predicate<Item> for NotPredicate<M, Item>
where M: Predicate<Item>, Item: ?Sized,

Source§

impl<P, T> Predicate<P> for EqPredicate<T>
where T: Borrow<P> + Debug, P: Debug + PartialEq + ?Sized,

Source§

impl<P, T> Predicate<P> for HashableInPredicate<T>
where T: Borrow<P> + Hash + Eq + Debug, P: Hash + Eq + Debug + ?Sized,

Source§

impl<P, T> Predicate<P> for InPredicate<T>
where T: Borrow<P> + PartialEq + Debug, P: PartialEq + Debug + ?Sized,

Source§

impl<P, T> Predicate<P> for OrdInPredicate<T>
where T: Borrow<P> + Ord + Debug, P: Ord + Debug + ?Sized,

Source§

impl<P, T> Predicate<P> for OrdPredicate<T>
where T: Borrow<P> + Debug, P: Debug + PartialOrd + ?Sized,

Source§

impl<P> Predicate<OsStr> for Utf8Predicate<P>
where P: Predicate<str>,

Source§

impl<P> Predicate<Path> for FileContentPredicate<P>
where P: Predicate<[u8]>,

Source§

impl<P> Predicate<[u8]> for Utf8Predicate<P>
where P: Predicate<str>,

Source§

impl<P> Predicate<str> for TrimPredicate<P>
where P: Predicate<str>,