如何將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
- C#使用struct直接轉換下位機資料C#Struct
- openGauss資料庫將磁碟錶轉換為MOT資料庫
- 如何將文字轉換為向量?(方法二)
- 如何將文字轉換為向量?(方法三)
- 如何將Java 8 Calendar轉換為 LocalDateTime?JavaLDA
- 如何將CentOS 8轉換為CentOS StreamCentOS
- Stimulsoft Reports如何建立新的資料轉換、編輯資料轉換
- Java如何將字串轉換為字元陣列?Java字串字元陣列
- 如何將HEIC轉換為JPG / JPEG或PNG?
- 如何在Java中將double轉換為int?Java
- 如何在Java中將字串轉換為日期Java字串
- WebToLayers如何將網頁轉換為PSD文件?Web網頁
- Golang 將資料庫轉換為gorm結構和RESTful apiGolang資料庫ORMRESTAPI
- 如何將自己的網站從 HTTP 的轉換為 HTTPS 的網站HTTP
- 資料分析:如何將原始資料轉化為有價值的行動?
- postgresql 將jsonb中的資料替換為指定資料SQLJSON
- 如何將 PowerPoint 簡報轉換為 PDF 檔案?
- 如何在Python中將語音轉換為文字Python
- 如何將.ipynb檔案轉換為.py檔案
- 如何在Java 8中將List轉換為Map?Java
- 使用 NocoDB 一鍵將各種資料庫轉換為智慧表格資料庫
- mxnet資料格式轉換為tensorflow,pytorch資料PyTorch
- 轉換流
- 如何在 Go 中將 []byte 轉換為 io.Reader?Go
- 將網頁轉換為Markdown的免費線上轉換工具網頁
- 為啥我的字典資料轉換不成 json?JSON
- java將IP地址轉換為數字以及逆向轉換Java
- 談談如何將資料戰略轉化為資料價值|含模板
- 8、IO流:轉換流
- 轉換流與列印流
- Python將經緯度資料轉換成浮點資料Python
- 將數值轉換為字串的函式字串函式
- Java 中將 Short 轉換為 byte[]Java
- Java 中將 InputStream 轉換為 StreamJava
- 將WordPress站點轉換為JoomlaOOM
- Thymeleaf將字串轉換為數字字串