Attribute macro for less verbose creation of enums having different types as variants. Also automatically implements From.
```rs struct A; struct B; struct C; struct D;
enum Test { A, BB(B), C(C), } ```
results in:
```rs enum Test { A(A), BB(B), C(C), }
impl From for Test { fn from(variant: A) -> Self { Test::A(variant) } }
impl From for Test { fn from(variant: B) -> Self { Test::BB(variant) } }
impl From