arrays - 将结构转换为字节数组并返回 Rust

标签 arrays struct rust tcp byte

<分区>

我正在用 Rust 编写一个程序,该程序涉及通过 TCP 连接发送数据。我想不出将结构转换为字节数组并返回的方法。其他解决方案只能设法将其转换为 u8,但由于我是 Rust 的新手(只有 3 个月),我无法弄清楚。希望大家给个方法。

最佳答案

您可以使用 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();
}

关于arrays - 将结构转换为字节数组并返回 Rust,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66922989/

相关文章:

javascript - 如何按百分比等计算字段对 javascript 中的数组进行排序

c++ - 如何从C++中的文件读取字符数组(带有一些空间)

python - 通过索引列表使用不同数组中的值,使用 += 更改 numpy 数组中的特定值

c - 如何在c中初始化数组?

c - 为什么 tm_mday 从 1 开始,而 struct tm 的所有其他元素都从 0 开始?

c - 按 2 个参数对结构体数组进行排序

rust - 我可以使用 Deref<Target = Other> 从 Other 继承特征实现吗?

c++ - 结构中二维数组的动态内存分配

rust - 为什么在 `tail` 循环后仍然借用了 `while let Some() = xxx`?

rust - 如何将多个整数转换为字节数组