Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub enum StreamSelector {
- TlsConnecting(futures::future::FutureResult<futures::future::FutureResult<i32, ()>, ()>),
- TlsConnected(futures::future::FutureResult<i32, ()>),
- }
- impl futures::Future for StreamSelector {
- type Item = i32;
- type Error = ();
- fn poll(&mut self) -> futures::Poll<Self::Item, Self::Error> {
- match self {
- StreamSelector::TlsConnecting(inner) => match inner.poll() {
- Ok(futures::Async::Ready(f)) => {
- *self = StreamSelector::TlsConnected(f);
- self.poll()
- },
- Ok(futures::Async::NotReady) => Ok(futures::Async::NotReady),
- Err(err) => Err(err),
- },
- StreamSelector::TlsConnected(f) => f.poll(),
- }
- }
- }
- #[test]
- fn test_stream_selector() {
- let mut stream_selector = StreamSelector::TlsConnecting(futures::IntoFuture::into_future(Ok(futures::IntoFuture::into_future(Ok(5)))));
- assert_eq!(futures::Future::poll(&mut stream_selector), Ok(futures::Async::Ready(5)));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement