use futures::Future; use futures::future::{Shared, SharedError}; use crate::error::ConditionError; pub trait Waiter { type Item: Default; type Error: From>; fn blocked(&self) -> bool; fn condition(&self) -> Shared + Send>>; }