[−][src]Crate futures_enum
#[derive(Future, Stream, Sink, AsyncRead, AsyncWrite)] for enums.
Examples
use futures::future::{self, Future}; use futures_enum::*; #[derive(Future, Stream, Sink, AsyncRead, AsyncWrite)] enum Either<A, B> { A(A), B(B), } fn foo(x: i32) -> impl Future<Output = i32> { if x < 0 { Either::A(future::lazy(|_| 1)) } else { Either::B(future::ready(x)) } }
See auto_enums for how to automate patterns like this.
In version 0.1.3 or later, it works well even if the dependency contains only sub-crates such as futures-core, futures-util, etc.
Supported traits
Future- generated codeStream- generated codeSink- generated codeAsyncRead- generated codeAsyncWrite- generated code
See this issue for other traits.
Derive Macros
| AsyncRead | |
| AsyncWrite | |
| Future | |
| Sink | |
| Stream |