iterstream
This crate provides a trait that can convert an Iterator to a
Stream. It uses the futures crate to create an executor that
gets the values from the iterator in a separate thread pool
It differs from the iter() function
because iterator consumption is done in a separate thread. The
stream is then really asynchronous if the iterator is blocking
The ThreadPool needed to execute tasks can be either create
automatically (when using
to_stream), or explicitly
specified using
to_stream_with_pool. The
later is more flexible (and efficient) as it allows to share the
same pool for multiple streams
Example
use IterStream;
use StreamExt;
use ThreadPool;
let vals = vec!;
let stream = vals.into_iter.to_stream_with_pool;
let c: = stream.collect.await;
assert_eq!;
Authors
- Michaƫl Hauspie
Licence
- This crate is provided under CeCILL-B licence