Function permutator::get_cartesian_for [−][src]
pub fn get_cartesian_for<T>(
objects: &[T],
degree: usize,
i: usize
) -> Result<Vec<&T>, &str>
Get a cartesian product at specific location.
If objects
is [1, 2, 3] and degree is 2 then
all possible result is [1, 1], [1, 2], [1, 3],
[2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]
Parameters
objects
is a slice of an object.degree
is a degree of cartesian size.i
is a specific location to get a combination.
Examples
use permutator::get_cartesian_for; let nums = [1, 2, 3]; get_cartesian_for(&nums, 2, 0); // Return Ok([1, 1]) get_cartesian_for(&nums, 2, 3); // Return Ok([2, 1]) get_cartesian_for(&nums, 2, 8); // Return Ok([3, 3]) get_cartesian_for(&nums, 2, 9); // Return Err("Parameter `i` is out of bound") get_cartesian_for(&nums, 4, 0); // Return Err("Parameter `degree` cannot be larger than size of objects")