1个不稳定版本

使用旧的Rust 2015

0.1.0 2017年3月2日

#323#procedural

31 每月下载
用于 introspection-derive

MIT 许可证

3KB
69

introspection

一个Rust自省进程宏。

MIT licensed

它做什么?

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

用法

  1. 在您的 Cargo.toml 中添加 introspection 依赖
[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 许可证 许可。

依赖项

~2MB
~49K SLoC