如何將Rust的“struct”轉換為資料流?
當且僅當原始結構派生Serialize和Deserialize特徵時,可以使用bincode將它們序列化為 binary-encoded Vec<u8>。
在這裡,我用一個元組結構MyStruct包裹了原始結構StructFromAnotherTool,並使用hex將結果從Vec<u8>編碼和解碼為十六進位制字串,這樣我就可以很容易地將十六進位制字串表示法儲存在資料庫中。
請注意,這些結構在最後派生出PartialEq和Debug,然後使用斷言測試。
use serde::{Deserialize, Serialize};
use hex;
#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct StructFromOtherTool {
x: f32,
y: f32,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct MyStruct(StructFromOtherTool);
fn main() {
let mystruct = MyStruct(SomeStruct { x: 1.3, y: 5.2 });
let encoded: Vec<u8> = bincode::serialize(&mystruct).unwrap();
// 這個十六進位制的字串表示可以儲存在資料庫中。
let s = hex::encode(encoded.clone());
println!("Hex encoded struct: {}", s);
// 然後我們對十六進位制字串進行解碼,並使用bincode將其反序列化為一個MyStruct實體。
let v = hex::decode(s).unwrap();
let decoded = bincode::deserialize(&v[..]).unwrap();
assert_eq!(mystruct, decoded);
}
相關文章
- 將json資料轉換為Python字典將json資料轉換為Python字典JSONPython
- Rust中如何將本地時間轉換為另一個時區?Rust
- 如何將InputStream轉換為DataSource
- C#使用struct直接轉換下位機資料C#Struct
- Python模組學習:struct 資料格式轉換PythonStruct
- 用XML/XSLT將行資料轉換為列資料 (轉)XML
- 字串與資料流之間的轉換字串
- 將資料庫轉換為歸檔日誌模式資料庫模式
- openGauss資料庫將磁碟錶轉換為MOT資料庫
- 如何將CentOS 8轉換為CentOS StreamCentOS
- javascript如何將字串轉換為數字JavaScript字串
- 如何將文字轉換為向量?(方法二)
- 如何將文字轉換為向量?(方法三)
- 將任意格式轉換為JSON資料格式的工具類JSON
- Linux xargs將輸出資料流轉換成命令引數Linux
- 如何在Java中將double轉換為int?Java
- 如何在Java中將字串轉換為日期Java字串
- 如何將HEIC轉換為JPG / JPEG或PNG?
- 如何將Java 8 Calendar轉換為 LocalDateTime?JavaLDA
- Java如何將字串轉換為字元陣列?Java字串字元陣列
- js如何將陣列元素轉換為字串JS陣列字串
- 如何將Powerpoint文件轉換為Word文件
- 整形資料轉換為字串的研究字串
- Golang 將資料庫轉換為gorm結構和RESTful apiGolang資料庫ORMRESTAPI
- $.parseJSON()方法將json資料轉換為物件直接量JSON物件
- 將Json資料轉換為ADO.NET DataSet物件JSON物件
- 資料分析:如何將原始資料轉化為有價值的行動?
- postgresql 將jsonb中的資料替換為指定資料SQLJSON
- Stimulsoft Reports如何建立新的資料轉換、編輯資料轉換
- 如何在Java 8中將List轉換為Map?Java
- 如何將.ipynb檔案轉換為.py檔案
- WebToLayers如何將網頁轉換為PSD文件?Web網頁
- 如何將PPT幻燈片轉換為圖片
- 如何將PPT幻燈片轉換為SWF動畫動畫
- javascript如何將時間日期轉換為Date物件JavaScript物件
- 如何將時間字串轉換為時間物件字串物件
- PowerPoint如何將簡報轉換為WORD文件
- 如何將man與info文件轉換為文字方式