Serde文档说:
所有这些都可以直接使用Serde进行序列化。
serde_json仅用于示例,通常不需要。
这正是我所需要的,将结构基本序列化为某种基本二进制格式。我不需要JSON格式,我想保持它的简单性,以便能够将struct存储在文件中或将其发送到网络。该文档尚不清楚如何使用serde进行基本(二进制或默认)序列化,它仅显示带有JSON的示例,但这不是我想要的。我也不想实现自己的serialize
方法,我想使用Serde提供的默认方法。
这是我的示例,那么如何使它工作?
use serde::{Serialize, Deserialize,Serializer};
#[derive(Serialize, Deserialize, Debug)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let point = Point { x: 1, y: 2 };
//let serialized = serde::serialize(&point).unwrap(); // <-- doesnt work!
//let serialized = Serializer::serialize(&point); // <-- doesnt work!
//let serialized = point.serialize(Serializer); // <-- doesn't work!
println!("data = {:?}", serialized);
}
这是我的依赖行:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
答案 0 :(得分:2)
如评论中所述,没有提供“默认”格式。
您必须选择所需的二进制格式,并将其作为附加依赖项包含进去,就像使用serde_json
一样。
https://serde.rs/#data-formats上有格式列表。在这些serde_json
是https://github.com/serde-rs下唯一托管的软件包中,所有二进制格式均为“第三方”。与the list of crates tagged "serde" sorted by recent downloads交叉引用时,CBOR条板箱似乎很受欢迎。