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

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.

Methods

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

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

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

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

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> 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]

fn children(&'a self) -> Box<dyn Iterator<Item = Child<'a>> + 'a>[src]

Nested Predicates of the current Predicate.

Auto Trait Implementations

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

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

Blanket Implementations

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

fn name(self, name: &'static str) -> NamePredicate<Self, Item> where
    Self: Sized
[src]

Name a predicate expression. Read more

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

fn and<B>(self, other: B) -> AndPredicate<Self, B, Item> where
    B: Predicate<Item>,
    Self: Sized
[src]

Compute the logical AND of two Predicate results, returning the result. Read more

fn or<B>(self, other: B) -> OrPredicate<Self, B, Item> where
    B: Predicate<Item>,
    Self: Sized
[src]

Compute the logical OR of two Predicate results, returning the result. Read more

fn not(self) -> NotPredicate<Self, Item> where
    Self: Sized
[src]

Compute the logical NOT of a Predicate, returning the result. Read more

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

type Owned = T

The resulting type after obtaining ownership.

impl<T> From for T[src]

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

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

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

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

The type returned in the event of a conversion error.

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