2个不稳定版本
0.2.0 | 2020年4月12日 |
---|---|
0.1.0 | 2020年4月10日 |
#6 in #introspect
用于 spectacle
4KB
Spectacle
Spectacle
递归遍历调用时的结构,访问每个结构字段、枚举变体等。它通过 Any
trait 操作。它还包括访问器和选择器的轨迹,描述如何从根对象到达当前位置。有了这两样东西,就可以轻松找到并访问感兴趣的数据部分。
通常不应将内省作为首选工具。然而,在某些情况下,它们是必不可少的。这个crate的发明促使:编写一个强类型化的serde编解码器,用于大型、复杂、深度嵌套、未充分指定的JSON块。从外向内工作,可以轻松编写最外层容器的类型。然而,确定某些不常见、内部字段的适当类型很复杂,因为有许多示例,深度嵌套。
解决方案是进行内省,特别访问所有仍然为 serde_json::Value
的值。通过打印每个值的表示,可以发现适当的编码方式。
功能
-
Spectacle
trait:包含字段、变体等的访问者 -
实现 Spectacle为 $原始类型
- (默认) 功能门控
impl Spectacle for $collection
- 功能门控
impl Spectacle for serde_json::Value
-
#[派生(Spectacle)]
lib.rs
:
不要使用此crate。它仅在spectacle中使用。它只为spectacle做一件事。在其他上下文中可能会破坏。
依赖项
~1.5MB
~33K SLoC