3 个版本
0.0.3 | 2022 年 8 月 18 日 |
---|---|
0.0.2 | 2022 年 7 月 29 日 |
0.0.1 | 2022 年 7 月 19 日 |
1692 在 进程宏 中
23KB
319 行代码(不含注释)
r-lombok-macros
为 r-lombok-macros
提供宏。它是一个自动连接到您的编辑器和构建工具的 Rust 宏,类似于 Java 的 lombok
有关此包的更多信息,请参阅包文档。
使用示例
use std::fmt::Debug;
use r_lombok_macros::{Getter, Setter};
#[derive(Debug, Getter, Setter)]
struct Company {
name: &'static str,
boss: &'static str,
number: u32,
department: Vec<String>,
}
#[derive(Getter, Setter)]
struct CompanyGen<T> where T: Debug {
name: T,
boss: &'static str,
number: u32,
department: Vec<String>,
}
#[derive(Getter, Setter)]
struct CompanyWrap {
sub_company: CompanyGen<Company>,
name: &'static str,
}
// Unit struct
#[derive(Getter, Setter, Debug)]
struct UnitStruct {}
fn main() {
let mut xp = Company {
name: "xp",
boss: "Big Brother",
number: u32::MAX,
department: vec!["HR".to_owned(), "Finance".to_owned()],
};
println!("xp name = {:?} boss = {:?} number = {:?} department = {:?}", xp.get_name(), xp.get_boss(), xp.get_number(), xp.get_department());
xp.set_name("set_name");
xp.set_boss("set_boss");
xp.set_number(u32::MIN);
xp.set_department(vec!["department".to_owned()]);
let xp_t = CompanyGen::<Company> {
name: xp,
boss: "Big Brother",
number: u32::MAX,
department: vec!["HR".to_owned(), "Finance".to_owned()],
};
println!("xp_t name = {:?} boss = {:?} number = {:?} department = {:?}", xp_t.get_name(), xp_t.get_boss(), xp_t.get_number(), xp_t.get_department());
let xp_wrap = CompanyWrap {
sub_company: xp_t,
name: "xp_wrap",
};
println!("xp_wrap name = {:?} sub_company = {:?}", xp_wrap.get_name(), xp_wrap.get_sub_company().get_name());
let unit = UnitStruct {};
println!("unit = {:?}", unit);
}
更多示例请参阅 测试
获取帮助
您也可以通过 问题 获取帮助。
许可证
本项目采用 MIT 许可证。
贡献
除非您明确声明,否则您提交给 r-lombok-macros
的任何有意贡献均应按照 MIT 许可证授权,不附加任何额外条款或条件。
依赖项
~1.5MB
~35K SLoC