Trait predicates::PredicateBoxExt

source ·
pub trait PredicateBoxExt<Item: ?Sized>
where Self: Predicate<Item>,
{ // Provided method fn boxed(self) -> BoxPredicate<Item> where Self: Sized + Send + Sync + 'static { ... } }
Expand description

Predicate extension for boxing a Predicate.

Provided Methods§

source

fn boxed(self) -> BoxPredicate<Item>
where Self: Sized + Send + Sync + 'static,

Returns a BoxPredicate wrapper around this Predicate type.

Returns a BoxPredicate wrapper around this Predicate type. The BoxPredicate type has a number of useful properties:

  • It stores the inner predicate as a trait object, so the type of BoxPredicate will always be the same even if steps are added or removed from the predicate.
  • It is a common type, allowing it to be stored in vectors or other collection types.
  • It implements Debug and Display.
§Examples
use predicates::prelude::*;

let predicates = vec![
    predicate::always().boxed(),
    predicate::never().boxed(),
];
assert_eq!(true, predicates[0].eval(&4));
assert_eq!(false, predicates[1].eval(&4));

Implementors§

source§

impl<P, Item> PredicateBoxExt<Item> for P
where P: Predicate<Item>,