1 个不稳定版本
0.1.0 | 2024年2月2日 |
---|
#1284 在 编码
50KB
1.5K SLoC
serde_dbgfmt
使用 serde
反序列化 #[derive(Debug)]
的输出。
这个库允许您通过 serde
反序列化 Rust 类型的调试表示。这包括所有使用 #[derive(Debug)]
的类型,以及使用 std::fmt
中的调试辅助程序输出其调试表示的任何其他类型。
示例
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Test {
message: String,
}
let text = format!("{:?}", Test { message: "Hello, World!".into() });
let value: Test = serde_defmt::from_str(&text)
.expect("failed to deserialize from the debug repr");
assert_eq!(value.message, "Hello, World!");
注意事项
- 这个库解析由
std::fmt
中的调试辅助程序生成的格式。这应该涵盖了所有具有#[derive(Debug)]
的类型以及许多自定义实现,但由于自定义实现可以执行任何操作,因此不能保证其工作。 - 调试辅助程序输出的调试格式不一定稳定。虽然在过去它相对稳定,但无法保证将来不会更改。
- 用于反序列化的结构体名称必须与文本调试表示中的名称匹配。如果您想在代码库中使用不同的结构体名称,可以使用
#[serde(rename = "..")]
。
另请参阅
依赖项
~115–360KB