Hello,
I am doing an async implementation of an iterator as follow:
pub fn iter_mut<T, F>(input: Vec<T>, callback : F)
where
T: 'static + PartialOrd + Ord + Clone + Send,
F: 'static + Box<FnMut(Vec<T>) + Send>,
{
let computer_handler = thread::spawn(move || {
let iterator = PermutationIterator::new(input);
for permutation in iterator {
callback(permutation)
}
});
computer_handler.join();
}
And the test is:
#[test]
fn should_invoke_a_mutable_callback() {
let input = vec![1, 2, 3];
let mut counter = 0;
let receiver = |permutation| {
counter = counter + 1;
};
// call
PermutationIteratorThread::iter_mut( input, receiver );
thread::sleep(Duration::from_secs(10));
// assertions
assert_eq!( 6, counter );
}
But it does not work at all.. i don't manage to do that. I won't give you the errors I have with cargo test
because I have done many tries that don't succeed.
Please advise
You can have a look at the whole project here