[−][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 |