1个不稳定版本
0.1.0 | 2024年1月2日 |
---|
#49 在 #look
用于 look_inside
4KB
look_inside
你是否想知道Rust如何看到你的数据类型?
现在你可以用一个简单的衍生宏来找到答案...
但首先,你需要将look_inside包添加到Cargo.toml的依赖中
[dependencies]
look_inside = "0.1"
然后,简单地使用LookInside
在结构体struct
、enum
或union
上衍生,并编译。在编译过程中,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