将结构体转换为字节数组并返回到 Rust

Ois*_*Das 5 arrays byte struct tcp rust

我正在用 Rust 编写一个程序,涉及通过 TCP 连接发送数据。我无法弄清楚将结构转换为字节数组并返回的方法。其他解决方案只能将其转换为u8,但由于我是 Rust 新手(只有 3 个月),我无法弄清楚。我希望你们能提供一种方法来做到这一点。

Ibr*_*med 9

您可以使用bincode将结构转换为字节,反之亦然。它建立在框架之上serde

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct Entity {
    x: f32,
    y: f32,
}

fn main() {
    let entity = Entity { x: 1.5, y: 1.5 };
    let encoded: Vec<u8> = bincode::serialize(&entity).unwrap();
    let decoded: Entity = bincode::deserialize(&encoded[..]).unwrap();
}
Run Code Online (Sandbox Code Playgroud)