use futures::sync::oneshot; use futures::Future; pub trait Waiter { type Item: Send + 'static; type Error: From + From + From<()> + Send + 'static; type ConditionError: Send + Clone + 'static; fn blocked(&self) -> bool; fn condition_poller(&self) -> Box + Send>; fn into_future(self) -> Box + Send>; }