Guest User

Untitled

a guest
Nov 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. extern crate futures;
  2.  
  3. use futures::future::*;
  4. use futures::{Stream, stream, Async};
  5.  
  6. fn main() {
  7. // generate FutureResult
  8. let future_of_ok = ok::<u32, u32>(1); // immediate value of a successful computation
  9. let future_of_err = err::<u32, u32>(1); // immediate value of a failed computation
  10. // convert std::result::Result to FutureResult
  11. let future_of_result = result::<u32, u32>(Ok(1));
  12.  
  13. // convert Iterator into a stream
  14. let mut stream = stream::iter_ok::<_, ()>(vec![17, 19]);
  15. // poll(pull out)
  16. assert_eq!(Ok(Async::Ready(Some(17))), stream.poll());
  17.  
  18. let mut stream = stream::iter_result(vec![Ok(17), Err(false), Ok(19)]);
  19. assert_eq!(Ok(Async::Ready(Some(17))), stream.poll());
  20. assert_eq!(Err(false), stream.poll());
  21. assert_eq!(Ok(Async::Ready(Some(19))), stream.poll());
  22. assert_eq!(Ok(Async::Ready(None)), stream.poll());
  23.  
  24.  
  25. let mut stream = stream::once::<(), _>(Err(17));
  26. assert_eq!(Err(17), stream.poll());
  27. assert_eq!(Ok(Async::Ready(None)), stream.poll());
  28.  
  29. let mut a = lazy(|| ok::<u32, u32>(1));
  30. println!("{:?}", a.poll()); // Ok(Async::Ready(1))
  31. let mut b = lazy(|| -> FutureResult<u32, u32> {panic!("oh no")});
  32. drop(b);
  33. //println!("{:?}", b.poll())
  34. }
Add Comment
Please, Sign In to add comment