首页 > 解决方案 > 从 Vec 序列化和反序列化

问题描述

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

然而,这需要从一个平面缓冲区Vec<u32>或一个Option<Vec32>表示数据的平面缓冲区中打包和解包:基本上每 5u32秒就是一个新结构。我一直在为访问者的实施而苦苦挣扎。Option在案例和非案例之间共享代码时,是否有一种简单的方法可以做到这一点Option

我真的很想做impl Serialize for Vec<MyType>(和Deserialize),但这不起作用。

标签: rustserde

解决方案


我最终放弃了我的SerializeDeserializeimpls 并#[serde(with="my_mod"]选择了Vec<MyType> 案例。

对于这种Option<Vec<MyType>>情况,我最终创建了反转关系的包装器类型,以便我真正序列化/反序列化的是Option<Wrapper { Vec<T> }>


推荐阅读