coproduct 0.4.1

Generic coproduct type with minimal memory footprint
Documentation
# Coproduct

Have you ever found yourself in a situation where you'd like to have two enums
where only a few variants differ? Usually that involves a lot of duplication
and boilerplate. Not any more! Coproducts allow you to describe them and
convert between them effortlessly!

```Rust
use coproduct::{Coproduct, MkUnion, Union};

#[derive(Debug)]
struct A;
#[derive(Debug)]
struct B;
#[derive(Debug)]
struct C;
#[derive(Debug)]
struct D;

type ABC = MkUnion!(A, B, C);

fn main() {
    let abc: Coproduct<ABC> = Coproduct::inject(A);
    let abcd: Coproduct<Union<D, ABC>> = abc.embed();
    println!("{:?}", abcd);
}
```

Find out more in the [documentation](https://docs.rs/coproduct).