rust - 从Vec <u32>进行序列化和反序列化

标签 rust serde

我有5个u32的结构,可以通过简单地序列化来实现序列化/反序列化:(s.first, s.second, s.third, s.fourth, s.fifth)

但是,这需要从表示数据的Vec<u32>Option<Vec32>的 FlatBuffers 中进行打包和解包:基本上每5个u32都是一个新结构。我一直在努力与访客的实现。在Option和非Option案例之间共享代码时,有一种简单的方法吗?

我真的很想做impl Serialize for Vec<MyType>(和Deserialize),但这是行不通的。

最佳答案

我最终放弃了SerializeDeserialize impls,并使用#[serde(with="my_mod"]进行Vec<MyType>案例。

对于Option<Vec<MyType>>情况,我最终创建了包装类型,该包装类型反转了关系,因此我真正进行序列化/反序列化的是Option<Wrapper { Vec<T> }>

关于rust - 从Vec <u32>进行序列化和反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60290298/

相关文章:

rust - 当接收 channel 需要包装在互斥体中以从多个 Therad 读取时,多生产者多消费者 channel 的意义何在?

rust - 我如何支持 Serde 枚举的未知值或其他值?

rust - 如何使用 serde 将 Rust 对象序列化为 Rust 文字?

rust - Clap 无法解析 YAML 文件 : failed to convert YAML String ("1") value to a string

iterator - 使用 Peekable 实现 "cautious"take_while

rust - 需要 Sized 的特征与无法拥有该特征的特征对象有什么关系?

import - 如何使用 Cargo/Rust 在模块中包含同一目录中的文件?

rust - crate 名称有一个破折号 : unresolved import error

rust - 如何使用 Serde 在反序列化期间转换字段?

rust - 我可以将RMPV `Value`发送回rmp_serde进行反序列化吗?