1个不稳定版本

0.1.0 2024年1月2日

#49#look


用于 look_inside

MIT 许可证

4KB

look_inside

你是否想知道Rust如何看到你的数据类型?

现在你可以用一个简单的衍生宏来找到答案...

但首先,你需要将look_inside包添加到Cargo.toml的依赖中

[dependencies]
look_inside = "0.1"

然后,简单地使用LookInside在结构体structenumunion上衍生,并编译。在编译过程中,LookInside将引发恐慌并显示它分解成的完整抽象语法树。你想知道除了结构体、枚举或联合之外的类型AST?没问题。将你的类型用在结构体、枚举或联合中。

结构体示例

use look_inside::LookInside;

#[Derive(LookInside)]
struct MyStruct {
    oneThing: u8,
    twoThing: String,
    threeThing: Vec<u16>,
}

枚举示例

use look_inside::LookInside;

#[Derive(LookInside)]
enum MyEnum {
    variantOne(u8),
    variantTwo(u16),
    variantThree(MyStruct)
}

联合示例

use look_inside::LookInside;

#[Derive(LookInside)]
union MyUnion {
    aU8: u8,
    aU16: u16,
    myStruct: MyStruct,
}

对于那些想了解这一切是如何工作的...看看lib.rs。实际上,这里什么都没有。

如果这么简单,为什么我要制作这个包?简单,我想查看我的类型,以便创建更好的衍生宏。将这个包放入一个包中,可以轻松地将它添加到我在工作的任何项目中,以便检查一些事情,然后再移除。

依赖关系

~235–660KB
~16K SLoC