Trait tuple_map::TupleMap2
[−]
[src]
pub trait TupleMap2 {
type Item;
fn all<F>(self, f: F) -> bool
where
F: FnMut(Self::Item) -> bool;
fn any<F>(self, f: F) -> bool
where
F: FnMut(Self::Item) -> bool;
fn by_ref(&self) -> (&Self::Item, &Self::Item);
fn by_ref_mut(&mut self) -> (&mut Self::Item, &mut Self::Item);
fn fold<B, F>(self, init: B, f: F) -> B
where
F: FnMut(B, Self::Item) -> B;
fn for_each<F>(self, f: F)
where
F: FnMut(Self::Item);
fn into_vec(self) -> Vec<Self::Item>;
fn map<B, F>(self, f: F) -> (B, B)
where
F: FnMut(Self::Item) -> B;
fn cloned(&self) -> (Self::Item, Self::Item)
where
Self::Item: Clone,
{ ... }
}
Associated Types
type Item
Required Methods
fn all<F>(self, f: F) -> bool where
F: FnMut(Self::Item) -> bool,
F: FnMut(Self::Item) -> bool,
Checks if every element of tuple matches a predicate, like
std::iter::Iterator::all.
This method take a closure returns true or false, and tries to apply this
closure to all elements of tuple. If and only if all of them returns true,
this method return true.
Examples
let a = (3, 9, 12, ...); assert!(a.all(|x| x % 3 == 0)); assert!(!a.all(|x| x % 4 == 0));
fn any<F>(self, f: F) -> bool where
F: FnMut(Self::Item) -> bool,
F: FnMut(Self::Item) -> bool,
Checks if any element of tuple matches a predicate, like
std::iter::Iterator::any.
This method take a closure returns true or false, and tries to apply this
closure to all elements of tuple. If any of them returns true,
this method return true.
Examples
let a = (3, 9, 12, ...); assert!(a.any(|x| x % 4 == 0)); assert!(!a.any(|x| x % 7 == 0));
fn by_ref(&self) -> (&Self::Item, &Self::Item)
Takes &(a, a, a, ...) and returns (&a, &a, &a, ...)
Examples
let a = (3, 3, 3, ...); assert_eq!(a.by_ref(), (&3, &3, &3, ...));
fn by_ref_mut(&mut self) -> (&mut Self::Item, &mut Self::Item)
Takes &mut (a, a, a, ...) and returns (&mut a, &mut a, &mut a, ...)
Examples
let a = (3, 3, 3, ...); assert_eq!(a.by_ref(), (&mut 3, &mut 3, &mut 3, ...));
fn fold<B, F>(self, init: B, f: F) -> B where
F: FnMut(B, Self::Item) -> B,
F: FnMut(B, Self::Item) -> B,
Takes a closure f and applies it to all elements to tuple, and produce single value.
This is similar to std::iter::Iterator::fold
Example
let a = (3, 4, 5, ...) let sum = a.fold(0, |sum, x| sum + x);
fn for_each<F>(self, f: F) where
F: FnMut(Self::Item),
F: FnMut(Self::Item),
Takes a closure f and applies it to all elements to tuple.
f can cause side effect(because it's FnMut), but this method return nothing.
Similar to std::iter::Iterator::for_each
Example
let a = (3, 4, 5, ...); let mut sum = 0; a.for_each(|x| sum += x);
fn into_vec(self) -> Vec<Self::Item>
Convert tuple into Vec.
Example
let a = (3, 4, 5, ...) assert_eq(a.into_vec(), vec![3, 4, 5, ...])
fn map<B, F>(self, f: F) -> (B, B) where
F: FnMut(Self::Item) -> B,
F: FnMut(Self::Item) -> B,
Takes a closure f and (a, a, a, ...), then returns (f(a), f(a), f(a), ...).
Similar to std::iter::Iterator::map.
Example
let a = (3, 4, 5, ...); assert_eq!(a.map(|x| x * 2), (6, 8, 10, ...));
Provided Methods
fn cloned(&self) -> (Self::Item, Self::Item) where
Self::Item: Clone,
Self::Item: Clone,
Takes &(a, a, a, ...) and returns (a, a, a, ...)
Examples
let a = (3, 3, 3, ..,); assert_eq!(a, a.clone());
Implementations on Foreign Types
impl<T> TupleMap2 for (T, T)[src]
type Item = T
fn any<F>(self, f: F) -> bool where
F: FnMut(Self::Item) -> bool, [src]
F: FnMut(Self::Item) -> bool,
fn all<F>(self, f: F) -> bool where
F: FnMut(Self::Item) -> bool, [src]
F: FnMut(Self::Item) -> bool,
fn by_ref(&self) -> (&Self::Item, &Self::Item)[src]
fn by_ref_mut(&mut self) -> (&mut Self::Item, &mut Self::Item)[src]
fn fold<B, F>(self, init: B, f: F) -> B where
F: FnMut(B, Self::Item) -> B, [src]
F: FnMut(B, Self::Item) -> B,
fn for_each<F>(self, f: F) where
F: FnMut(Self::Item), [src]
F: FnMut(Self::Item),
fn into_vec(self) -> Vec<Self::Item>[src]
fn map<B, F>(self, f: F) -> (B, B) where
F: FnMut(Self::Item) -> B, [src]
F: FnMut(Self::Item) -> B,
fn cloned(&self) -> (Self::Item, Self::Item) where
Self::Item: Clone, [src]
Self::Item: Clone,