# 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`:
```toml
enumx = "0.4"
```
Add this if you want to support up to 32 variants:
```toml
features = ["enum32"]
```
`src/lib.rs`:
```rust
use enumx::export::*;
```
If you want to use predefined enum types:
```rust
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](https://oooutlk.github.io/enumx/) for more.
# License
Licensed under MIT.