#内省 #过程宏 #过程

introspection-derive

一个Rust内省过程宏

1个不稳定版本

使用旧的Rust 2015

0.1.0 2017年3月2日

53#内省

MIT 许可证

6KB
129

内省

一个Rust内省过程宏。

MIT licensed

它做什么?

它只是将代码从编译阶段(从 syn 包)转换为更简单的结构。适用于 structenum。您可以通过一个 Introspection 特性来获取这些信息。

用法

  1. introspection 添加到您的 Cargo.toml 中的依赖项
[dependencies]
introspection-derive = "0.1"
introspection = "0.1"
  1. 创建一个结构体或枚举
#[macro_use]
extern crate introspection_derive;
extern crate introspection;


#[derive(Introspection)]
struct FrenchToast {
    private_field: u64,
    pub public_field: u8,
}

  1. 使用它
fn main() {
   use introspection::{ Introspection };
   println!("Introspection: {:?}", FrenchToast::introspection());
}
  1. 查看结果
      Running `target/debug/introspection-test`
Introspection: IntrospectionInfo { ident: "FrenchToast", visibility: Inherited, entity_type: Struct, fields: ["private_field", "public_field"] }

备注:我个人怀疑这个包会帮助到某人,因为在这个时候(rustc v1.15),几乎不可能从过程宏中做很多有趣和有用的东西。

许可证

该项目采用 MIT 许可证

依赖项

~1.5MB
~41K SLoC