#数据交换 #serde #绑定 #格式 #枚举 #cats #nachricht

nachricht-serde

Serde 对 nachricht 数据交换格式的绑定

5 个版本 (3 个重大更改)

0.4.0 2022年3月26日
0.3.2 2021年12月28日
0.3.1 2021年3月21日
0.2.0 2021年2月8日
0.1.0 2020年12月22日

#1923 in 编码

MIT 许可证

91KB
2K SLoC

nachricht-serde

为 nachricht 数据交换格式提供 Serde 绑定。


[dependencies]
nachricht-serde = "0.4.0"

使用示例

use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub enum Species {
    PrionailurusViverrinus,
    LynxLynx,
    FelisCatus,
}

#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub struct Cat<'a> {
    name: &'a str,
    species: Species,
}

#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct Message<'a> {
    version: u32,
    #[serde(borrow)]
    cats: Vec<Cat<'a>>,
}

let msg = Message {
        version: 1,
        cats: vec![
            Cat { name: "Jessica", species: Species::PrionailurusViverrinus },
            Cat { name: "Wantan", species: Species::LynxLynx },
            Cat { name: "Sphinx", species: Species::FelisCatus },
            Cat { name: "Chandra", species: Species::PrionailurusViverrinus },
        ],
    };
let bytes = nachricht_serde::to_bytes(&msg).unwrap();

依赖项

~110–340KB