pub fn in_iter<I, T>(iter: I) -> InPredicate<T>Expand description
Creates a new predicate that will return true when the given variable is
contained with the set of items provided.
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.
If you need to optimize this
- Type is
Ord, callsort()on this predicate. - Type is
Hash, replacein_iterwithin_hash.
ยงExamples
use predicates::prelude::*;
let predicate_fn = predicate::in_iter(vec![1, 3, 5]);
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"]);
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")]);
assert_eq!(true, predicate_fn.eval("a"));
assert_eq!(false, predicate_fn.eval("b"));
assert_eq!(true, predicate_fn.eval("c"));