2个不稳定版本
0.2.1 | 2024年1月6日 |
---|---|
0.1.0 | 2024年1月1日 |
#2550 在 Rust模式
26 每月下载量
20KB
247 行
look_inside
此包提供了名为 LookInside
的自定义推导宏,允许在编译时检查结构体和枚举的字段。
它还提供了用于处理不同类型的模块
enums
- 为枚举类型提供功能。fields
- 为结构体字段提供功能。structs
- 为结构体类型提供功能。unions
- 为联合体类型提供功能。
LookInside
宏生成一个实现 LookInside
特性的实现,在编译时以结构化的方式暴露字段和变体。这允许在宏中对字段和变体进行迭代和匹配。
导出关键项
LookInside
- 自定义推导宏。Ident
,Type
等. - 从 Syn 重新导出有用的类型。此包通过使用LookInside
自定义推导宏提供了一种方便的方法,在编译时检查结构体和枚举字段。
要使用它来查看结构体、枚举和联合体的结构,请在结构体或枚举定义中添加 #[derive(LookInside)]
。这将为此类型生成一个 LookInside
特性的实现,以结构化的方式在 panic 消息中暴露其字段和变体。
例如
#[derive(LookInside)]
struct MyStruct {
field1: u32,
field2: String,
}
此外,此包还包含从 syn 包中获取 DeriveInput 并返回用于在您的代码中使用的类型结构表示的代码。
以下是一个打印结构体字段的简单示例
let my_struct = MyStruct { field1: 42, field2: "foo".to_string() };
// Access fields:
let field1 = my_struct.look_inside().fields().field1;
// Iterate fields:
for field in my_struct.look_inside().fields() {
println!("{}", field.ident);
}
这为在宏和过程宏中通用地检查和处理结构体、联合体和枚举提供了便利方式。
依赖项
~250–670KB
~16K SLoC