Setters

Derive Macro Setters 

Source
#[derive(Setters)]
{
    // Attributes available to this derive:
    #[setters]
}
Expand description

Derive to generate .set_<field>(&mut self, value: Ty) -> &mut Self and const .with_<field>(mut self, value: Ty) -> Self for each named field.

  • Skipping a field: #[setters(skip)]

ยงExample

use utils_accessors_derive::Setters;

#[derive(Setters)]
struct Foo<T> where T: Default {
    a: u32,
    #[setters(skip)]
    _phantom: T,
}

let mut f = Foo { a: 1, _phantom: u8::default() };
f.set_a(10).set_a(11);
let f2 = f.with_a(42);
assert_eq!(f2.a, 42);