Skip to content
This repository has been archived by the owner on Aug 4, 2021. It is now read-only.

Latest commit

 

History

History
52 lines (39 loc) · 1.39 KB

README.md

File metadata and controls

52 lines (39 loc) · 1.39 KB

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 }),
  };
}