[英]How to serialize primitive types in Rust?
使用serde
序列化原始類型的正確方法是什么? 例如,以下代碼片段會引發錯誤:
extern crate serde; // 1.0.137
use serde::Serialize;
fn main ()
{
let test = true;
let serialized: Vec<u8> = vec![];
test.serialize(&mut serialized).unwrap();
}
錯誤是:
錯誤[E0277]: 特征綁定
&mut Vec<u8>: Serializer
程序
如何使用serde
將任何原始類型序列化為 Rust 中的字節向量/切片?
Serde 為序列化提供了兩件事: Serialize
trait 和Serializer
trait。 Serialize
trait 用於描述任何可以序列化的值,例如test
布爾值,而Serializer
trait 用於定義用於序列化的數據格式。 這就是為什么調用serialize
需要一個Serializer
器:serde 沒有內置的數據格式。
您可以考慮使用的一件事是bincode ,它有一個方便的serialize
函數,可以構造 bincode Serializer
並創建一個 vec:
let serialized: Vec<u8> = bincode::serialize(test).unwrap();
如果您有興趣,Serde 的文檔會列出更多數據格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.