[][src]Trait permutator::Combination

pub trait Combination<'a> {
    type Combinator: Iterator;
    fn combination(&'a self, k: usize) -> Self::Combinator;
}

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

Loading content...

Required methods

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

Loading content...

Implementations on Foreign Types

impl<'a, T> Combination<'a> for [T] where
    T: 'a, 
[src]

An implementation for convenient use of LargeCombinationIterator

type Combinator = LargeCombinationIterator<'a, T>

impl<'a, T> Combination<'a> for Vec<T> where
    T: 'a, 
[src]

An implementation for convenient use of LargeCombinationIterator

type Combinator = LargeCombinationIterator<'a, T>

Loading content...

Implementors

impl<'a, 'b: 'a, T> Combination<'a> for CombinationIntoCellParams<'b, T>[src]

An implementation for convenient use of LargeCombinationCellIter

type Combinator = LargeCombinationCellIter<'b, T>

impl<'a, 'b: 'a, T> Combination<'a> for CombinationIntoRefParams<'b, T>[src]

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.

type Combinator = LargeCombinationRefIter<'b, T>

Loading content...