Crate derive_builder [−] [src]
Derive a builder for a struct
Use in combination with custom_derive.
Examples
#[macro_use] extern crate custom_derive; #[macro_use] extern crate derive_builder; custom_derive!{ #[derive(Debug, PartialEq, Default, Builder)] struct Lorem { ipsum: String, dolor: i32, } } fn main() { let x = Lorem::default().ipsum("sit").dolor(42); assert_eq!(x, Lorem { ipsum: "sit".into(), dolor: 42 }); }
Generic structs
#[macro_use] extern crate custom_derive; #[macro_use] extern crate derive_builder; custom_derive!{ #[derive(Debug, PartialEq, Default, Builder)] struct GenLorem<T> { ipsum: String, dolor: T, } } fn main() { let x = GenLorem::default().ipsum("sit").dolor(42); assert_eq!(x, GenLorem { ipsum: "sit".into(), dolor: 42 }); }
Gotchas
- Tuple structs and unit structs are not supported as they have no field names.
- When defining a generic struct, you cannot use
VALUE
as a generic parameter as this is what all setters are using.
Macros
Builder! |
|