Trait permutator::Combination
source · [−]pub trait Combination<'a> {
type Combinator: Iterator;
fn combination(&'a self, k: usize) -> Self::Combinator;
}
Expand description
Create a combination out of T
Normally, it take a [T]
or Vec<T>
to create a combination.
Example
use permutator::Combination;
let data = [1, 2, 3, 4, 5];
data.combination(3).for_each(|c| {
// called multiple times.
// Each call have [1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]
// [1, 2, 5], [1, 3, 5], [2, 3, 5], [1, 4, 5], [2, 4, 5],
// and [3, 4, 5] respectively.
println!("{:?}", c);
});
See Example implementation on foreign type.
Associated Types
type Combinator: Iterator
Required methods
fn combination(&'a self, k: usize) -> Self::Combinator
fn combination(&'a self, k: usize) -> Self::Combinator
Create a family of LargeCombinationIterator
of k
size out of self
.
See LargeCombinationIterator for
how to use LargeCombinationIterator
Return
A new family of LargeCombinationIterator
Implementations on Foreign Types
An implementation for convenient use of LargeCombinationIterator
type Combinator = LargeCombinationIterator<'a, T>
fn combination(&'a self, k: usize) -> LargeCombinationIterator<'a, T>ⓘNotable traits for LargeCombinationIterator<'a, T>impl<'a, T> Iterator for LargeCombinationIterator<'a, T> type Item = Vec<&'a T>;
Notable traits for LargeCombinationIterator<'a, T>
impl<'a, T> Iterator for LargeCombinationIterator<'a, T> type Item = Vec<&'a T>;
An implementation for convenient use of LargeCombinationIterator
type Combinator = LargeCombinationIterator<'a, T>
fn combination(&'a self, k: usize) -> LargeCombinationIterator<'a, T>ⓘNotable traits for LargeCombinationIterator<'a, T>impl<'a, T> Iterator for LargeCombinationIterator<'a, T> type Item = Vec<&'a T>;
Notable traits for LargeCombinationIterator<'a, T>
impl<'a, T> Iterator for LargeCombinationIterator<'a, T> type Item = Vec<&'a T>;
Implementors
An implementation for convenient use of LargeCombinationCellIter
type Combinator = LargeCombinationCellIter<'b, T>
An implementation for convenient use of LargeCombinationRefIter
Warning
It hid unsafe object instantiation of LargeCombinationRefIter from user but all unsafe conditions are still applied as long as the life of object itself.