Struct predicates::iter::InPredicate[][src]

pub struct InPredicate<T> where
    T: PartialEq + Debug
{ /* fields omitted */ }

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.

Implementations

impl<T> InPredicate<T> where
    T: Ord + Debug
[src]

pub fn sort(self) -> OrdInPredicate<T>[src]

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: Clone> Clone for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<T: Debug> Debug for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<T> Display for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<T: Eq> Eq for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<T: PartialEq> PartialEq<InPredicate<T>> for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<T> Predicate<T> for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<'a, T: ?Sized> Predicate<T> for InPredicate<&'a T> where
    T: PartialEq + Debug
[src]

impl<T> PredicateReflection for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<T> StructuralEq for InPredicate<T> where
    T: PartialEq + Debug
[src]

impl<T> StructuralPartialEq for InPredicate<T> where
    T: PartialEq + Debug
[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for InPredicate<T> where
    T: RefUnwindSafe

impl<T> Send for InPredicate<T> where
    T: Send

impl<T> Sync for InPredicate<T> where
    T: Sync

impl<T> Unpin for InPredicate<T> where
    T: Unpin

impl<T> UnwindSafe for InPredicate<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<P, Item> PredicateBooleanExt<Item> for P where
    Item: ?Sized,
    P: Predicate<Item>, 
[src]

impl<P, Item> PredicateNameExt<Item> for P where
    Item: ?Sized,
    P: Predicate<Item>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.