enumx

Crates.ioenumx
lib.rsenumx
version0.4.3
sourcesrc
created_at2018-11-20 17:38:57.625668
updated_at2021-04-04 11:48:01.996257
descriptionAd-hoc enum extension.
homepage
repositoryhttps://github.com/oooutlk/enumx
max_upload_size
id97801
size44,443
(oooutlk)

documentation

https://docs.rs/enumx

README

Motivation

Simulating ad-hoc enums which

  1. can be converted between enums that share a common set of variant types.

  2. can implement traits that haven been implemented by all variants.

Usage

Add this crate to Cargo.toml

Cargo.toml:

enumx = "0.4"

Add this if you want to support up to 32 variants:

features = ["enum32"]

src/lib.rs:

use enumx::export::*;

If you want to use predefined enum types:

use enumx::predefined::*;

Features

  • "union types" simulation, aka "enum exchange".

  • summaries into an enum, the returned values of different types by functions that returns impl Trait.

  • macros to help implementing traits for enums the variants of which have all implemented the traits.

Documentation

See the enumx book for more.

License

Licensed under MIT.

Commit count: 19

cargo fmt