Build Status Latest Version Rust Documentation

Rust SmartDefault

Custom derive for automatically implementing the Default trait with customized default values:

```rust

[macro_use]

extern crate smart_default;

[derive(SmartDefault)]

enum Foo { Bar, #[default] Baz { #[default = 12] a: i32, b: i32, #[default(Some(Default::default()))] c: Option }, Qux(i32), }

assert!(Foo::default() == Foo::Baz { a: 12, b: 0, c: Some(0) }); ```

Requires Rust 1.30+ (for non-string values in attributes)