1 个不稳定版本
0.1.0 | 2021年4月2日 |
---|
#17 in #mutator
21KB
184 代码行
purpurea
此包提供基于属性的便利方法生成(访问器/更新器/修改器/构造函数)用于具有私有字段的 struct。该包的属性宏实现的观察结果与 Java 库 Lombok 的 @Getter
/@Setter
和 @RequiredArgsConstructor
/@AllArgsConstructor
注解的结果有些相似,带有 Rust 风格。
示例
mod examples {
use purpurea::*;
#[accessors(email)]
#[updaters(email)]
#[default_constructor]
pub struct User {
email: String,
account_number: usize
}
}
use examples::*;
let john_doe = User::new("[email protected]", 45275);
let new_email = "[email protected]";
let john_doe2 = john_doe.with_email(new_email.to_owned());
assert_eq!(new_email, john_doe2.email());
lib.rs
:
此包提供基于属性的便利方法生成(访问器/更新器/修改器/构造函数)用于具有私有字段的 struct。
该包的属性宏实现的观察结果与 Java 库 Lombok 的 @Getter
/@Setter
和 @RequiredArgsConstructor
/@AllArgsConstructor
注解的结果有些相似,带有 Rust 风格。
示例
mod examples {
use purpurea::*;
#[accessors(email)]
#[updaters(email)]
#[default_constructor]
pub struct User {
email: String,
account_number: usize
}
}
use examples::*;
let john_doe = User::new("[email protected]", 45275);
let new_email = "[email protected]";
let john_doe2 = john_doe.with_email(new_email.to_owned());
assert_eq!(new_email, john_doe2.email());
依赖
~1.5MB
~35K SLoC