Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate futures;
- use futures::future::*;
- use futures::{Stream, stream, Async};
- fn main() {
- // generate FutureResult
- let future_of_ok = ok::<u32, u32>(1); // immediate value of a successful computation
- let future_of_err = err::<u32, u32>(1); // immediate value of a failed computation
- // convert std::result::Result to FutureResult
- let future_of_result = result::<u32, u32>(Ok(1));
- // convert Iterator into a stream
- let mut stream = stream::iter_ok::<_, ()>(vec![17, 19]);
- // poll(pull out)
- assert_eq!(Ok(Async::Ready(Some(17))), stream.poll());
- let mut stream = stream::iter_result(vec![Ok(17), Err(false), Ok(19)]);
- assert_eq!(Ok(Async::Ready(Some(17))), stream.poll());
- assert_eq!(Err(false), stream.poll());
- assert_eq!(Ok(Async::Ready(Some(19))), stream.poll());
- assert_eq!(Ok(Async::Ready(None)), stream.poll());
- let mut stream = stream::once::<(), _>(Err(17));
- assert_eq!(Err(17), stream.poll());
- assert_eq!(Ok(Async::Ready(None)), stream.poll());
- let mut a = lazy(|| ok::<u32, u32>(1));
- println!("{:?}", a.poll()); // Ok(Async::Ready(1))
- let mut b = lazy(|| -> FutureResult<u32, u32> {panic!("oh no")});
- drop(b);
- //println!("{:?}", b.poll())
- }
Add Comment
Please, Sign In to add comment