# easy-conv Cut down on trivial `impl From for B` boilerplate code. [crates.io](https://crates.io/crates/easy-conv) ## Quick start Ever tired of code that looks like this? ```rust enum Choices { Alpha(TypeA), Bravo(TypeB), Charlie(TypeC), } impl From for Choices { fn from(val: TypeA) -> Self { Choices::Alpha(val) } } impl From for Choices { fn from(val: TypeB) -> Self { Choices::Bravo(val) } } impl From for Choices { fn from(val: TypeC) -> Self { Choices::Charlie(val) } } ``` How about this? ```rust enum Choices { Alpha(TypeA), Bravo(TypeB), Charlie(TypeC), } newtype_wrap!(Choices, Alpha, TypeA); newtype_wrap!(Choices, Bravo, TypeB); newtype_wrap!(Choices, Charlie, TypeC); ``` Better? I certainly think so. There are also `newtype_wrap_from_any` and `chained_into` macros, which each does their quirky little thing. See [documentation](https://docs.rs/easy-conv/latest/). ## Contributing If you have any other type conversion needs that involve a lot of boilerplate code, please feel free to raise an issue (or better yet, a PR). Maybe we can add a macro to make life easier for you and everyone else.