Сериализация и десериализация из Ve c - PullRequest
1 голос
/ 19 февраля 2020

У меня есть структура 5 u32 s, которая реализует сериализацию / десериализацию путем простой сериализации: (s.first, s.second, s.third, s.fourth, s.fifth).

Однако это нужно упаковать и распаковать из плоского буфера Vec<u32> или Option<Vec32>, которые представляют данные: по сути, каждые 5 u32 s - это новая структура. Я продолжаю бороться с реализацией посетителей. Есть ли простой способ сделать это, разделяя код между Option и не Option делами?

Я действительно хочу сделать impl Serialize for Vec<MyType>Deserialize), но это не работает.

1 Ответ

1 голос
/ 19 февраля 2020

Я закончил тем, что отказался от своих Serialize и Deserialize имплов, и пошел с #[serde(with="my_mod"] для случая Vec<MyType>.

Для случая Option<Vec<MyType>> я закончил тем, что создал типы оболочки, которые инвертировали отношения так, что я действительно сериализовал / десериализовал Option<Wrapper { Vec<T> }>

...