Struct predicates::iter::InPredicate

source ·
pub struct InPredicate<T>
where T: PartialEq + Debug,
{ /* private fields */ }
Expand description

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§

source§

impl<T> InPredicate<T>
where T: Ord + Debug,

source

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"));

let predicate_fn = predicate::in_iter(vec![String::from("a"), String::from("c"), String::from("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§

source§

impl<T> Clone for InPredicate<T>
where T: PartialEq + Debug + Clone,

source§

fn clone(&self) -> InPredicate<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for InPredicate<T>
where T: PartialEq + Debug + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> Display for InPredicate<T>
where T: PartialEq + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> PartialEq for InPredicate<T>
where T: PartialEq + Debug + PartialEq,

source§

fn eq(&self, other: &InPredicate<T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<P, T> Predicate<P> for InPredicate<T>
where T: Borrow<P> + PartialEq + Debug, P: PartialEq + Debug + ?Sized,

source§

fn eval(&self, variable: &P) -> bool

Execute this Predicate against variable, returning the resulting boolean.
source§

fn find_case<'a>(&'a self, expected: bool, variable: &P) -> Option<Case<'a>>

Find a case that proves this predicate as expected when run against variable.
source§

impl<T> PredicateReflection for InPredicate<T>
where T: PartialEq + Debug,

source§

fn parameters<'a>(&'a self) -> Box<dyn Iterator<Item = Parameter<'a>> + 'a>

Parameters of the current Predicate.
source§

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

Nested Predicates of the current Predicate.
source§

impl<T> Eq for InPredicate<T>
where T: PartialEq + Debug + Eq,

source§

impl<T> StructuralPartialEq for InPredicate<T>
where T: PartialEq + Debug,

Auto Trait Implementations§

§

impl<T> Freeze for InPredicate<T>

§

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§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

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

source§

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

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

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

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

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

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

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

source§

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

Returns a BoxPredicate wrapper around this Predicate type. Read more
source§

impl<P> PredicateFileContentExt for P
where P: Predicate<[u8]>,

source§

fn from_file_path(self) -> FileContentPredicate<Self>

Returns a FileContentPredicate that adapts Self to a file content Predicate. Read more
source§

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

source§

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

Name a predicate expression. Read more
source§

impl<P> PredicateStrExt for P
where P: Predicate<str>,

source§

fn trim(self) -> TrimPredicate<Self>

Returns a TrimPredicate that ensures the data passed to Self is trimmed. Read more
source§

fn from_utf8(self) -> Utf8Predicate<Self>

Returns a Utf8Predicate that adapts Self to a [u8] Predicate. Read more
source§

fn normalize(self) -> NormalizedPredicate<Self>

Available on crate feature normalize-line-endings only.
Returns a NormalizedPredicate that ensures the newlines within the data passed to Self is normalised. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.