Skip to main content

GetSet

Derive Macro GetSet 

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

为结构体自动生成 getter 和 setter 方法。

该宏会为结构体的每个字段生成对应的 get_{field}set_{field} 方法, 除非字段上使用了 #[get_set(...)] 属性进行跳过控制。

§字段属性控制

  • #[get_set(skip)]:跳过该字段的 getter 和 setter 生成。
  • #[get_set(skip_get)]:仅跳过 getter 方法的生成。
  • #[get_set(skip_set)]:仅跳过 setter 方法的生成。

§示例

#[derive(GetSet)]
struct MyStruct {
    #[get_set(skip)]
    field1: i32,        // 不生成任何方法
    field2: i32,        // 生成 get_field2() 和 set_field2()
    #[get_set(skip_get)]
    field3: i32,        // 仅生成 set_field3()
    #[get_set(skip_set)]
    field4: i32,        // 仅生成 get_field4()
}

Automatically generate getter and setter methods for structures.

This macro will generate corresponding ‘get_ {field}’ and ‘set_ {field}’ methods for each field of the structure, Unless the ‘# [get_det (…)’ attribute is used on the field for skip control.

§Field attribute control

  • # [get_det (skip)]: Skip the generator and setter generation for this field.
  • # [get_det (skip_get)]: Only skip the generation of the getter method.
  • # [get_det (skip_set)]: Skip only the generation of setter methods.

§Example

#[derive(GetSet)]
struct MyStruct {
    #[get_set(skip)]
    field1: i32, //Do not generate any methods
    field2: i32, //Generate get_field2() and set_field2()
    #[get_set(skip_get)]
    field3: i32, //Only generate set_field3()
    #[get_set(skip_set)]
    field4: i32, //Only generate get_field4()
}