2个不稳定版本

0.2.1 2024年1月6日
0.1.0 2024年1月1日

#2550Rust模式

26 每月下载量

MIT 许可证

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