impl-more
Concise trait implementations.
```rust struct MyNewTypeStruct(String);
implmore::implasref!(MyNewTypeStruct => String); implmore::implasmut!(MyNewTypeStruct => String);
implmore::implderef!(MyNewTypeStruct => String); implmore::implderefmut!(MyNewTypeStruct); // or, to deref through String too: // implmore::forwardderefand_mut!(MyNewTypeStruct, ref str);
implmore::implfrom!(String => MyNewTypeStruct); implmore::implinto!(MyNewTypeStruct => String);
enum MyEnum { Bar, Qux, }
implmore::impldisplay_enum!(MyEnum, Bar => "bar", Qux => "qux");
enum Coords { Xy(i64, i64), Xyz(i64, i64, i64), }
implmore::impldisplay_enum!( Coords, Xy(x, y) => "{x}, {y}", Xyz(x, y, z) => "{x}, {y}, {z}", );
struct MyError(eyre::Report);
implmore::forwarddisplay!(MyError); implmore::forwarderror!(MyError);
let err = MyError(eyre::eyre!("something went wrong")); asserteq!(err.source().unwrap().tostring(), "something went wrong");
enum Err { Io(std::io::Error), Generic(String), }
implmore::impldisplayenum!(Err, Io(err) => "{err}", Generic(msg) => "{msg}"); implmore::implerrorenum!(Err, Io(err) => err); ```