Improved version of the macro to implement the traits defined in the standard library.
See #[derive_ex]
documentation for details.
Debug
.Clone::clone_from
.Add
, AddAssign
, Not
, Deref
, etc.)Copy
Clone
Debug
Default
Add
, Sub
, Mul
, Shl
, etc.)AddAssign
, SubAssign
, MulAssign
, ShlAssign
, etc.)Not
, Neg
)Deref
, DerefMut
The following traits are not supported as more suitable crates exist.
| trait | crate |
| -------------------- | --------------------------------------------------------- |
| Display
, FromStr
| parse-display
|
| Error
| thiserror
|
Add this to your Cargo.toml:
toml
[dependencies]
derive-ex = "0.1.4"
```rust use deriveex::deriveex;
struct X { #[default(10)] a: u32, } asserteq!(X { a: 1 } + X { a: 2 }, X { a: 3 }); asserteq!(X::default(), X { a: 10 });
enum Y { A, #[default] B, } assert_eq!(Y::default(), Y::B); ```
This project is dual licensed under Apache-2.0/MIT. See the two LICENSE-* files for details.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.