3个版本
0.1.2 | 2023年8月7日 |
---|---|
0.1.1 | 2023年8月7日 |
0.1.0 | 2023年8月5日 |
#825 in 过程宏
9KB
145 行
autoget
一个用于生成Rust结构体成员获取器的简单宏。
用法
#[derive(AutoGet)]
struct Something {
test: String,
test2: String,
test3: String,
}
这将生成类似以下代码
impl Something {
fn test(&self) -> &String {
&self.test
}
fn test_mut(&mut self) -> &mut String {
&mut self.test
}
fn test2(&self) -> &String {
&self.test2
}
fn test2_mut(&mut self) -> &mut String {
&mut self.test2
}
fn test3(&self) -> &String {
&self.test3
}
fn test3_mut(&mut self) -> &mut String {
&mut self.test3
}
}
要禁用可变获取器,您可以在选定的成员结构体上使用#[no_mut]
宏辅助属性。
#[derive(AutoGet)]
struct Something {
test: String,
#[no_mut]
test2: String,
test3: String,
}
或者,您可以通过使用#[exclude]
完全禁用获取器。
#[derive(AutoGet)]
struct Something {
test: String,
#[exclude]
test2: String,
test3: String,
}
您可以将它们一起使用,例如
#[derive(autoget::AutoGet)]
struct Something {
test: String,
#[exclude]
test2: String,
#[no_mut]
test3: String,
}
许可证
autoget可在MIT许可证下获得。有关更多信息,请参阅LICENSE文件。
依赖项
~295–750KB
~18K SLoC