1个不稳定版本
0.1.0 | 2023年3月28日 |
---|
#1578 在 编码
23KB
472 行
serde-typeinfo
"序列化"类型信息到一个基于serde数据模型的运行时标签。
示例
u8
整数将被"序列化"为不包含其值的Primitive::U8
枚举
use serde_typeinfo::{TypeTag, Primitive};
assert_eq!(
TypeTag::from_value(&32_u8),
TypeTag::Primitive(Primitive::U8), // only tag, not includes 32
);
- 具有
serde::Serialize
特实现的用户定义结构体将被"序列化"为包含其名称以及字段名称和类型的TypeTag::Struct
,但不包括值。
use serde_typeinfo::{TypeTag, Primitive};
use serde::Serialize;
#[derive(Serialize)]
struct A {
a: u8,
b: u8,
}
assert_eq!(
TypeTag::from_value(&A { a: 2, b: 3 }),
TypeTag::Struct {
name: "A",
fields: vec![
("a", Primitive::U8.into()),
("b", Primitive::U8.into()),
]
}
);
许可
© 2023 Toshiki Teramura (@termoshtt)
本项目许可协议为以下之一:
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
您可选择其中一种。
依赖项
~110–345KB