Function bicoro::executor::execute_from_iter
source · [−]pub fn execute_from_iter<Iter, Input, Output, OnOutput, Result>(
routine: Coroutine<'_, Input, Output, Result>,
on_output: OnOutput,
events: Iter
) -> IteratorExecutorResult<'_, Iter, Input, Output, Result>where
Iter: Iterator<Item = Input>,
OnOutput: FnMut(Output),
Expand description
Consumes a coroutine and runs it with the iterated events This may run to completion, or may consume all the inputs The on_output function is called whenever a output is produced Note: it’s expected that shouldn’t ever panic
use bicoro::*;
use bicoro::executor::*;
// sample coroutine
let co : Coroutine<i32,i32,()> = receive().and_then(|i| send(i));
// inputs to send
let inputs = vec![1];
let mut outputs = vec![];
let on_output = |output:i32| outputs.push(output);
let exec = execute_from_iter(co,on_output,inputs.into_iter());
assert!(matches!(exec, IteratorExecutorResult::Completed{ result: (),..}));
assert_eq!(outputs, vec![1]);