Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate futures;
- use futures::stream::Stream;
- use futures::{stream, Future};
- #[derive(Debug, PartialEq)]
- enum Status {
- Value(u32),
- Stop,
- }
- fn main() {
- let my_stream1 = stream::iter_ok::<_, ()>((0u32..20).map(Status::Value));
- let my_stream2 = stream::iter_ok::<_, ()>((100u32..102).map(Status::Value))
- .chain(stream::once(Ok(Status::Stop)));
- let combined_stream = my_stream1.select(my_stream2);
- let stream_done = combined_stream
- .take_while(|status| Ok(status != &Status::Stop))
- .for_each(|x| {
- print!("{:?}, ", x);
- Ok(())
- });
- stream_done.wait().unwrap();
- println!("");
- }
Add Comment
Please, Sign In to add comment