#byte #serde #b64

serde_bytes_wrapper

Vec的包装器,使用serde_bytes作为表示

1个不稳定版本

0.1.0 2021年11月3日

#2362 in 编码

MIT 许可证

8KB
64

MIT licensed Version Code Coverage Downloads

serde_bytes_wrapper

Vec的包装器,使用serde_bytes作为表示。

它实现了Deserialize、Serialize和Deref/DerefMut到Vec;

文档链接

Crates.io链接

当你想要类似的功能时很有用

#[derive(serde::Deserialize, serde::Serialize, Debug)]
struct Val {
    #[serde(with = "serde_bytes")]
    val: Option<Vec<Vec<u8>>>,
}

你可以使用它代替

use serde_bytes_wrapper::Bytes;

#[derive(serde::Deserialize, serde::Serialize, Debug)]
struct Val {
    val: Option<Vec<Bytes>>,
}

示例

use serde::{Deserialize, Serialize};
use serde_bytes_wrapper::Bytes;

#[derive(Deserialize, Serialize, Debug)]
struct Val {
    val: Option<Vec<Bytes>>,
}

fn main() {
  let result = serde_cbor::to_vec(&Val {
      val: Some(vec![vec![1, 2, 3].into()])
    }).unwrap();
  println!("{:?}", result); // [161, 99, 118, 97, 108, 129, 67, 1, 2, 3]
}

依赖项

~0.4–1MB
~24K SLoC