新版本的变更 / Rust 1.36

// *** before: ***
// трейт жил в стороннем крейте futures, и версии крейта
// делали несовместимыми асинхронные библиотеки между собой

// *** in version 1.36: ***
use std::future::Future;
use std::pin::Pin;
use std::task::{Context, Poll};

struct Ready(i32);

impl Future for Ready {
    type Output = i32;
    fn poll(selfPin<&mut Self>, _cx: &mut Context<'_>) -> Poll<i32> {
        Poll::Ready(self.0)
    }
}