one-of-futures

Crates.ioone-of-futures
lib.rsone-of-futures
version0.1.4
sourcesrc
created_at2019-11-15 16:35:12.245949
updated_at2020-05-28 09:09:32.469018
descriptionFuture-aware Either-like type with multiple variants
homepagehttps://github.com/glebpom/one-of-futures
repositoryhttps://github.com/glebpom/one-of-futures
max_upload_size
id181542
size21,356
Gleb Pomykalov (glebpom)

documentation

https://docs.rs/one-of-futures/0.1.4/one-of-futures/

README

one-of-futures

Crates.io MIT licensed Build Status

Overview

This crate implements several custom future-aware OneOf types, which behaves similarly to Either type, but suitable for more than two variants.

It also exposes impl_one_of! macro, which allows generating custom OneOf type, with the desired number and names of variants

Features

futures_03 enables support for futures 0.3 (core/std), enabled by default

sink enables support for futures 0.3 (core/std)'s Sink, enabled by default

tokio-io enabled support for tokio 0.2's AsyncRead and AsyncWrite

futures_01 enables support for futures 0.1 under the futures_01 module

Usage

Add this to your Cargo.toml:

[dependencies]
one-of-futures = "0.1"

Example

use one_of_futures::impl_one_of;

impl_one_of!(MyEither;
  Left,
  Right
);

fn main() {
  let either = match 1 {
      0 => MyEither::Left(async { 1 }),
      _ => MyEither::Right(async { 2 }),
  };
}
Commit count: 21

cargo fmt