7 个版本
0.1.6 | 2022 年 3 月 20 日 |
---|---|
0.1.5 | 2022 年 3 月 7 日 |
0.1.4 | 2021 年 8 月 19 日 |
79 in #struct-fields
7KB
124 行
struct_field
提供 StructField
派生宏。
#[derive(StructField)]
struct SomeStruct {
field_one: i32,
field_two: Vec<bool>,
}
生成
enum SomeStructField {
field_one(i32),
field_two(Vec<bool>),
}
impl SomeStruct {
pub fn update_field(&mut self, field: SomeStructField) {
match field {
SomeStructField::field_one(field_one) => self.field_one = field_one,
SomeStructField::field_two(field_two) => self.field_two = field_two,
}
}
}
用法
使用 struct_field
派生宏。
#[derive(StructField)]
struct SomeStruct {
field_one: i32,
field_two: Vec<bool>,
}
使用 #[struct_field(skip)]
跳过字段。
#[derive(StructField)]
struct SomeStruct {
field_one: i32,
#[struct_field(skip)]
field_two: Vec<bool>,
}
依赖关系
~1.5MB
~35K SLoC