Skip to content

Similar to futures `Either` type, but with multiple variants and generating macros

License

Notifications You must be signed in to change notification settings

Karrq/one-of-futures

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Similar to futures `Either` type, but with multiple variants and generating macros

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%