1extern crate tokio;
2#[macro_use]
3extern crate futures;
4extern crate void;
5#[macro_use]
6extern crate log;
7#[macro_use]
8extern crate unwrap;
9extern crate bytes;
10
11use std::io;
12use futures::{Future, Stream, Sink};
13
14mod drop_notify;
15mod until;
16mod future_ext;
17mod stream_ext;
18mod first_ok;
19mod log_errors;
20mod log_error;
21mod infallible;
22mod next_or_else;
23mod finally;
24mod delay;
25mod with_timeout;
26mod thread_future;
27mod first_ok2;
28mod while_driving;
29mod resume_unwind;
30mod with_readiness_timeout;
31pub mod bi_channel;
32pub mod mpsc;
33mod framed_unbuffered;
34
35pub use drop_notify::{drop_notify, DropNotify, DropNotice};
36pub use until::Until;
37pub use first_ok::FirstOk;
38pub use log_errors::LogErrors;
39pub use log_error::LogError;
40pub use future_ext::FutureExt;
41pub use stream_ext::StreamExt;
42pub use infallible::Infallible;
43pub use next_or_else::NextOrElse;
44pub use finally::Finally;
45pub use with_timeout::WithTimeout;
46pub use delay::Delay;
47pub use with_readiness_timeout::WithReadinessTimeout;
48pub use thread_future::{thread_future, ThreadFuture};
49pub use first_ok2::FirstOk2;
50pub use while_driving::{WhileDriving, Finish, FinishInner};
51pub use resume_unwind::ResumeUnwind;
52pub use framed_unbuffered::FramedUnbuffered;
53
54pub type BoxFuture<T, E> = Box<Future<Item=T, Error=E>>;
55pub type BoxStream<T, E> = Box<Stream<Item=T, Error=E>>;
56pub type BoxSink<T, E> = Box<Sink<SinkItem=T, SinkError=E>>;
57
58pub type BoxSendFuture<T, E> = Box<Future<Item=T, Error=E> + Send>;
59pub type BoxSendStream<T, E> = Box<Stream<Item=T, Error=E> + Send>;
60pub type BoxSendSink<T, E> = Box<Sink<SinkItem=T, SinkError=E> + Send>;
61
62pub type IoFuture<T> = Box<Future<Item=T, Error=io::Error>>;
63pub type IoStream<T> = Box<Stream<Item=T, Error=io::Error>>;
64pub type IoSink<T> = Box<Sink<SinkItem=T, SinkError=io::Error>>;
65