1 个不稳定版本
0.1.0 | 2023年9月4日 |
---|
#1799 在 过程宏
9KB
90 行
Nullable Struct
介绍
nullable_structs
是一个 Rust crate,它提供了一个可空派生宏。此宏使得创建每个字段都被 Option 包装的结构体变得非常容易,从而使每个字段都可以为可空。此外,该 crate 为这些字段生成了方便的获取和设置方法。
[dependencies]
nullable_struct = "0.1.0"
功能
- 将结构体的每个字段包装在 Option 中。
- 生成返回包装值或默认值的获取方法。
- 生成返回 Option<&T> 的获取方法。
- 生成更新每个字段值的设置方法。
- 提供构造函数以使用 None 初始化每个字段。
- 实现 Default 特性,将所有字段初始化为 None。
示例
以下是一个基本示例,演示如何使用 nullable_struct
。
extern crate nullable_structs;
use nullable_struct::Nullable;
#[derive(Nullable)]
struct MyStruct {
field1: i32,
field2: String,
}
fn main() {
let mut instance = NullableMyStruct::new(42, "Hello".to_string());
println!("Field1: {}", instance.field1()); // Output: 42
println!("Field2: {}", instance.field2()); // Output: Hello
instance.set_field1(13);
instance.set_field2("World".to_string());
if let Some(value) = instance.get_field1() {
println!("Field1 exists: {}", value); // Output: 13
}
if let Some(value) = instance.get_field2() {
println!("Field2 exists: {}", value); // Output: World
}
}
许可证
该项目受 Apache License 2.0 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。
依赖关系
~1.5MB
~35K SLoC