1 个不稳定版本

0.1.0 2021年1月15日

#1184编码

自定义许可协议

49KB
1K SLoC

Serde Bebop

这是 Serde 对 Bebop 协议的实现。这是一个纯粹实验性的项目,我还不确定是否会继续维护它

这不是什么

为了明确,这只是一个 Rust 的序列化和反序列化实现,它不包含用于编译 .bop 文件或生成代码/结构体(除了反序列化代码)的其他功能

如何使用

你需要在你的 Cargo.toml 文件中包含以下两个导入

[dependencies]
serde_bebop = "0.1"
serde = { version = "1.0", features = ["derive"] }

然后,在你的 Rust 代码中

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize, Debug)]
struct Person {
    name: String,
    age: u16,
}

fn main() {
    let data = Person {
        name: "Charlie".to_string(),
        age: 28,
    };

    let raw = serde_bebop::to_bytes(&data).expect("Unable to serialize");
    println!("{:?}", raw);

    let deserialized: Person = serde_bebop::from_bytes(&raw).expect("Unable to deserialize");
    println!("{:?}", deserialized);
}

缺失的功能

目前没有对 Bebop 的 GUID 和 Date 类型的支持,因为我还没有研究在 Serde 中如何实现这一点。

依赖关系

~0.4–1MB
~23K SLoC