{ fn mul_and_add(&self) -> usize; }
impl<'a, P: Plus> Multiplier for &'a [usize] {
fn mul_and_add(&self) -> usize {
self.iter().fold(1, |a, c| a * c) + P::plus42()
}
}
let numbers = vec![1, 2, 3];
let mut numbers = &numbers[..];
let out = foo::::using(&mut numbers, || {
foo::::with(|x| x.mul_and_add() )
}).unwrap();
assert_eq!(out, 6 + 42);
environmental!(foo: trait Multiplier);
}
}