rbe::deriv_n

Function deriv_n

Source
pub fn deriv_n<T, F>(v: Vec<T>, d: F) -> DerivN<T, F> 
Expand description

Return an iterator that generates variants of the vector applying to each element the function F

In case the value of F is None, the row will be skipped while if the value is Some(x), then the corresponding element will be replaced by x.

use rbe::deriv_n;

let vec = vec![1,2,3];
let sets = deriv_n(vec, |x: &i32| { Some(x + 100)}).collect::<Vec<_>>();
assert_eq!(sets, vec![
  vec![101, 2, 3],
  vec![1, 102, 3],
  vec![1, 2, 103]
])

A similar example which doesn’t generate iterator for the value 2

use rbe::deriv_n;

let vec = vec![1,2,3];
let sets = deriv_n(vec, |x: &i32| {
  match &x {
    2 => None,
    _ => Some(x + 100)
  }
}).collect::<Vec<_>>();
assert_eq!(sets, vec![
  vec![101, 2, 3],
  vec![1, 2, 103]
])