2个稳定版本
1.0.1 | 2023年9月18日 |
---|---|
1.0.0 | 2023年9月16日 |
在 过程宏 中排名第1397
6KB
GetSet过程宏
GetSet
过程宏简化了为Rust结构体字段创建getter和setter方法的过程。使用此宏,您可以自动生成这些方法,减少样板代码并提高代码可读性。
目录
用法
要使用GetSet
过程宏,请按照以下步骤操作
-
将
GetSet
crate添加到您的Cargo.toml
[dependencies] getset-macro = "0.1"
-
将GetSet过程宏导入您的Rust代码
use getset_macro::GetSet;
-
将#[derive(GetSet)]属性应用于您的结构体。这将自动为结构体的所有字段生成构造函数、getter和setter方法。
#[derive(GetSet)] struct MyStruct { field1: FieldType1, field2: FieldType2, // ... more fields }
-
如下使用生成的构造函数、getter和setter方法
let mut instance = MyStruct { field1: initial_value1, field2: initial_value2, }; // Or Using derived constructor let mut new_instance = MyStruct::new(field1, field2); // Get the value of field1 let value1 = instance.get_field1(); // Set the value of field2 instance.set_field2(new_value2);
示例
以下是如何使用GetSet过程宏的示例
use getset_macro::GetSet;
#[derive(GetSet)]
struct Person {
name: String,
age: u32,
}
fn main() {
// Using constructor API
let mut person = Person::new("Alice".to_string(), 30);
// Get the name and age
let name = person.get_name();
let age = person.get_age();
// Modify the age
person.set_age(25);
}
在此示例中,GetSet宏为Person结构体的字段生成了new()、get_name()、get_age()、set_name()和set_age()方法。
工作原理 GetSet宏负责以下任务
它为结构体中的所有字段生成getter方法(get_fieldname())。它为结构体中的所有字段生成setter方法(set_fieldname(value))。生成的getter方法返回字段值的引用。生成的setter方法允许您设置字段的值。宏分析结构体的字段并自动生成这些方法的代码,从而减少手动代码编写。
依赖关系
~310–770KB
~18K SLoC