use futures::{Future, Poll}; use std::io; use tokio_io::io::{write_all, WriteAll}; use tokio_io::AsyncWrite; use zebra_message::Message; pub fn write_message(a: A, message: Message) -> WriteMessage where A: AsyncWrite, { WriteMessage { future: write_all(a, message), } } pub struct WriteMessage { future: WriteAll>, } impl Future for WriteMessage where A: AsyncWrite, { type Item = (A, Message); type Error = io::Error; fn poll(&mut self) -> Poll { self.future.poll() } }