Guest User

Untitled

a guest
Sep 21st, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. extern crate futures;
  2.  
  3. use futures::stream::Stream;
  4. use futures::{stream, Future};
  5.  
  6. #[derive(Debug, PartialEq)]
  7. enum Status {
  8. Value(u32),
  9. Stop,
  10. }
  11.  
  12. fn main() {
  13. let my_stream1 = stream::iter_ok::<_, ()>((0u32..20).map(Status::Value));
  14. let my_stream2 = stream::iter_ok::<_, ()>((100u32..102).map(Status::Value))
  15. .chain(stream::once(Ok(Status::Stop)));
  16.  
  17. let combined_stream = my_stream1.select(my_stream2);
  18. let stream_done = combined_stream
  19. .take_while(|status| Ok(status != &Status::Stop))
  20. .for_each(|x| {
  21. print!("{:?}, ", x);
  22. Ok(())
  23. });
  24.  
  25. stream_done.wait().unwrap();
  26. println!("");
  27. }
Add Comment
Please, Sign In to add comment