#deserialize #binary #backward #field #versioned #compatible #framework

无 std binver

支持版本字段向后兼容的二进制(反)序列化框架

2 个版本

0.1.1 2021年6月20日
0.1.0 2021年6月20日

#9 in #versioned

MIT/Apache

17KB
295

Crates.io Build status docs.io codecov

binver

支持版本字段向后兼容的二进制(反)序列化框架。


#[derive(Serializable, PartialEq, Debug)]
pub struct Player {
    // This field has existed since binary version 0.0.1
    #[since(0.0.1)]
    pub id: u32,

    // In 0.0.2 we introduced a new field
    // When loading a serialized 0.0.1 object, this field will have it's `Default` value
    #[since(0.0.2)]
    pub name: String,
}

let player = Player {
    id: 5,
    name: String::from("foo")
};

let serialized = binver::to_vec(&player);
let deserialized_player = binver::deserialize_slice(&serialized).unwrap();

assert_eq!(player, deserialized_player);

许可证

根据以下任一许可证授权:

由您选择。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您提交的任何旨在包含在作品中的贡献,将按照上述方式双重许可,不附加任何其他条款或条件。

依赖项

~1.5MB
~36K SLoC