Skip to main content

Accessor

Derive Macro Accessor 

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

为结构体派生 Getter 和 Setter 宏

此宏会为带有 accessor(get) 属性的字段生成 getter 方法 为带有 accessor(set) 属性的字段生成 setter 方法。

还支持通过 accessor(range=[min, max]) 对字段设置值时进行范围检查。

§示例

use accessor_macro::Accessor;

#[derive(Accessor, Debug)]
struct Person {
   #[accessor(get, set)]
   name: String,
   #[accessor(get, set, range=[0, 200])]
   age: i32,
}

let mut person = Person {
    name: "Alice".to_string(),
    age: 25,
};

assert!(person.get_name().eq("Alice"));
person.set_name("Bob".to_string());
assert!(person.get_name().eq("Bob"));
assert!(person.set_age(18));
assert!(person.get_age() == &18);
assert!(!person.set_age(-1));
assert!(person.get_age() != &-1);
assert!(!person.set_age(201));
assert!(person.get_age() != &201);