相关疑难解决方法(0)

如何为大于 32 的数组实现 serde::Deserialize?

我需要使用 33 字节的数组。看起来最多包含 32 个元素的数组序列化没有问题,但 33 字节数组导致:

error[E0277]: the trait bound `[u8; 33]: _::_serde::Deserialize<'_>` is not satisfied
  --> src/main.rs:54:2
   |
54 |     foo: [u8; 33]
   |     ^^^ the trait `_::_serde::Deserialize<'_>` is not implemented for `[u8; 33]`
   |
   = help: the following implementations were found:
             <&'a [u8] as _::_serde::Deserialize<'de>>
             <[T; 0] as _::_serde::Deserialize<'de>>
             <[T; 10] as _::_serde::Deserialize<'de>>
             <[T; 11] as _::_serde::Deserialize<'de>>
           and 30 others
   = note: required by `_::_serde::de::MapAccess::next_value`
Run Code Online (Sandbox Code Playgroud)

他们显然认为 32 是一个停下来的好地方。如何添加对 33 个元素数组的支持?

arrays rust serde

4
推荐指数
1
解决办法
614
查看次数

如何使用serde和bincode将填充超过32个字节的C结构映射?

我正在使用serde和bincode映射二进制结构.

#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate bincode;

#[derive(Serialize, Deserialize)]
struct Superblock {
    magic: [u8; 16],
    //reserved: [u8; 492],
    crc: u32,
}
Run Code Online (Sandbox Code Playgroud)

事情按预期工作,但我无法映射保留字段.显然,固定大小的数组仅定义为最大32个字节的大小.

如何注册我的自定义大小的数组,以便填充反序列化?

serde + bincode是正确的方法吗?我需要控制字节顺序(bincode提供),我喜欢声明式样式.

rust serde

3
推荐指数
1
解决办法
697
查看次数

标签 统计

rust ×2

serde ×2

arrays ×1