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§
Sourcefn boxed(self) -> BoxPredicate<Item>
fn boxed(self) -> BoxPredicate<Item>
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
andDisplay
.
§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));