序列化 serializable/serialized 个元素的向量

Serialize a vector of serializable/serialized elements

如果我们有一个可序列化元素的向量,如何序列化该向量?

特别是如果每​​个序列化后的元素都是一个字节数组(如[u8;56])如何处理?

let mut byte_stream = data
    .iter()
    .map(|x| x.to_bytes())
    .collect::<Vec<_>>()

此代码段生成类型为 Vec<[u8; 56]> 的变量。

为了传输数据,我打算使用std::io::write但是它需要一个字节片&[u8]

您可以通过 flatten() 创建一个 Vec

data.iter()
    .map(|x| x.to_bytes())
    .flatten()
    .collect::<Vec<_>>()

但如果你想立即将它传递给一个作家,你不需要先收藏它。您可以循环遍历迭代器并多次写入。