#![forbid(unsafe_code, future_incompatible)]
#![deny(missing_debug_implementations, bad_style)]
#![deny(missing_docs)]
#![cfg_attr(test, deny(warnings))]
#![feature(futures_api)]
use std::task::{Poll, Waker};
pub trait WriteReady {
type Ok;
type Err: std::error::Error + Send + Sync;
fn poll_write_ready(&mut self, waker: &Waker) -> Poll<Result<Self::Ok, Self::Err>>;
}
pub trait ReadReady {
type Ok;
type Err: std::error::Error + Send + Sync;
fn poll_read_ready(&mut self, waker: &Waker) -> Poll<Result<Self::Ok, Self::Err>>;
}
pub trait Ready {
type Ok;
type Err: std::error::Error + Send + Sync;
fn poll_ready(&mut self, waker: &Waker) -> Poll<Result<Self::Ok, Self::Err>>;
}
pub trait TakeError {
type Ok: std::error::Error + Send + Sync;
type Err: std::error::Error + Send + Sync;
fn take_error(&self) -> Result<Option<Self::Ok>, Self::Err>;
}