rust - 从 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
),但这不起作用。
解决方案
我最终放弃了我的Serialize
和Deserialize
impls 并#[serde(with="my_mod"]
选择了Vec<MyType
> 案例。
对于这种Option<Vec<MyType>>
情况,我最终创建了反转关系的包装器类型,以便我真正序列化/反序列化的是Option<Wrapper { Vec<T> }>
推荐阅读
- c# - 尝试截屏时活动为空
- node.js - Express.js、Jest、Supertest:测试运行程序无法找到路由处理程序
- c# - ASP.NET MVC WebAPI JsonContent 返回流不是 WebServer 预期的 JSON
- java - 无法在 Spring Boot 中反序列化嵌套对象“Role”
- php - 使用 MySql 连接登录 PHP
- html - 我可能以错误的方式使用 div 标签请告诉我正确的方式
- firebase - 在 Firestore Vue 中使用自定义键
- android-studio - 创建没有 Counter Project 模板的项目
- php - 记录在查看页面上获得了两次
- vb.net - 尝试...抓住:性能