Struct predicates::iter::InPredicate [−][src]
Predicate that returns true
if variable
is a member of the pre-defined
set, otherwise returns false
.
Note that this implementation places the fewest restrictions on the
underlying Item
type at the expense of having the least performant
implementation (linear search). If the type to be searched is Hash + Eq
,
it is much more efficient to use HashableInPredicate
and
in_hash
. The implementation-specific predicates will be
deprecated when Rust supports trait specialization.
Methods
impl<T> InPredicate<T> where
T: Ord + Debug,
[src]
impl<T> InPredicate<T> where
T: Ord + Debug,
pub fn sort(self) -> OrdInPredicate<T>
[src]
pub fn sort(self) -> OrdInPredicate<T>
Creates a new predicate that will return true
when the given variable
is
contained with the set of items provided.
Note that this implementation requires Item
to be Ord
. The
InPredicate
uses a less efficient search algorithm but only
requires Item
implement PartialEq
. The implementation-specific
predicates will be deprecated when Rust supports trait specialization.
Examples
use predicates::prelude::*; let predicate_fn = predicate::in_iter(vec![1, 3, 5]).sort(); assert_eq!(true, predicate_fn.eval(&1)); assert_eq!(false, predicate_fn.eval(&2)); assert_eq!(true, predicate_fn.eval(&3)); let predicate_fn = predicate::in_iter(vec!["a", "c", "e"]).sort(); assert_eq!(true, predicate_fn.eval("a")); assert_eq!(false, predicate_fn.eval("b")); assert_eq!(true, predicate_fn.eval("c"));
Trait Implementations
impl<T: Debug> Debug for InPredicate<T> where
T: PartialEq + Debug,
[src]
impl<T: Debug> Debug for InPredicate<T> where
T: PartialEq + Debug,
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<T: Clone> Clone for InPredicate<T> where
T: PartialEq + Debug,
[src]
impl<T: Clone> Clone for InPredicate<T> where
T: PartialEq + Debug,
fn clone(&self) -> InPredicate<T>
[src]
fn clone(&self) -> InPredicate<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<T: PartialEq> PartialEq for InPredicate<T> where
T: PartialEq + Debug,
[src]
impl<T: PartialEq> PartialEq for InPredicate<T> where
T: PartialEq + Debug,
fn eq(&self, other: &InPredicate<T>) -> bool
[src]
fn eq(&self, other: &InPredicate<T>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &InPredicate<T>) -> bool
[src]
fn ne(&self, other: &InPredicate<T>) -> bool
This method tests for !=
.
impl<T: Eq> Eq for InPredicate<T> where
T: PartialEq + Debug,
[src]
impl<T: Eq> Eq for InPredicate<T> where
T: PartialEq + Debug,
impl<T> Predicate<T> for InPredicate<T> where
T: PartialEq + Debug,
[src]
impl<T> Predicate<T> for InPredicate<T> where
T: PartialEq + Debug,
fn eval(&self, variable: &T) -> bool
[src]
fn eval(&self, variable: &T) -> bool
Execute this Predicate
against variable
, returning the resulting boolean. Read more
fn find_case<'a>(&'a self, expected: bool, variable: &T) -> Option<Case<'a>>
[src]
fn find_case<'a>(&'a self, expected: bool, variable: &T) -> Option<Case<'a>>
Find a case that proves this predicate as expected
when run against variable
.
impl<'a, T: ?Sized> Predicate<T> for InPredicate<&'a T> where
T: PartialEq + Debug,
[src]
impl<'a, T: ?Sized> Predicate<T> for InPredicate<&'a T> where
T: PartialEq + Debug,
fn eval(&self, variable: &T) -> bool
[src]
fn eval(&self, variable: &T) -> bool
Execute this Predicate
against variable
, returning the resulting boolean. Read more
fn find_case<'b>(&'b self, expected: bool, variable: &T) -> Option<Case<'b>>
[src]
fn find_case<'b>(&'b self, expected: bool, variable: &T) -> Option<Case<'b>>
Find a case that proves this predicate as expected
when run against variable
.
impl<T> PredicateReflection for InPredicate<T> where
T: PartialEq + Debug,
[src]
impl<T> PredicateReflection for InPredicate<T> where
T: PartialEq + Debug,
ⓘImportant traits for Box<R>fn parameters<'a>(&'a self) -> Box<Iterator<Item = Parameter<'a>> + 'a>
[src]
fn parameters<'a>(&'a self) -> Box<Iterator<Item = Parameter<'a>> + 'a>
Parameters of the current Predicate
.
ⓘImportant traits for Box<R>fn children(&'a self) -> Box<Iterator<Item = Child<'a>> + 'a>
[src]
fn children(&'a self) -> Box<Iterator<Item = Child<'a>> + 'a>
Nested Predicate
s of the current Predicate
.
impl<T> Display for InPredicate<T> where
T: PartialEq + Debug,
[src]
impl<T> Display for InPredicate<T> where
T: PartialEq + Debug,
Auto Trait Implementations
impl<T> Send for InPredicate<T> where
T: Send,
impl<T> Send for InPredicate<T> where
T: Send,
impl<T> Sync for InPredicate<T> where
T: Sync,
impl<T> Sync for InPredicate<T> where
T: Sync,