pub trait Combination<'a> {
type Combinator: Iterator;
// Required method
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.
Required Associated Types§
type Combinator: Iterator
Required Methods§
Sourcefn 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§
Source§impl<'a, T> Combination<'a> for [T]where
T: 'a,
An implementation for convenient use of LargeCombinationIterator
impl<'a, T> Combination<'a> for [T]where
T: 'a,
An implementation for convenient use of LargeCombinationIterator
type Combinator = LargeCombinationIterator<'a, T>
fn combination(&'a self, k: usize) -> LargeCombinationIterator<'a, T> ⓘ
Source§impl<'a, T> Combination<'a> for Vec<T>where
T: 'a,
An implementation for convenient use of LargeCombinationIterator
impl<'a, T> Combination<'a> for Vec<T>where
T: 'a,
An implementation for convenient use of LargeCombinationIterator
type Combinator = LargeCombinationIterator<'a, T>
fn combination(&'a self, k: usize) -> LargeCombinationIterator<'a, T> ⓘ
Implementors§
Source§impl<'a, 'b: 'a, T> Combination<'a> for CombinationIntoCellParams<'b, T>
An implementation for convenient use of LargeCombinationCellIter
impl<'a, 'b: 'a, T> Combination<'a> for CombinationIntoCellParams<'b, T>
An implementation for convenient use of LargeCombinationCellIter
type Combinator = LargeCombinationCellIter<'b, T>
Source§impl<'a, 'b: 'a, T> Combination<'a> for CombinationIntoRefParams<'b, T>
An implementation for convenient use of LargeCombinationRefIter
impl<'a, 'b: 'a, T> Combination<'a> for CombinationIntoRefParams<'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.