#typed #numbers #num #serde #serde-derive #serialization

typed-num

Rust中的带serde支持的类型化数字

2个不稳定版本

0.2.0 2023年3月22日
0.1.0 2023年3月22日

1791编码

Download history • Rust 包仓库 81/week @ 2024-03-25 • Rust 包仓库 84/week @ 2024-04-01 • Rust 包仓库 88/week @ 2024-04-08 • Rust 包仓库 196/week @ 2024-04-15 • Rust 包仓库 86/week @ 2024-04-22 • Rust 包仓库 2/week @ 2024-04-29 • Rust 包仓库 82/week @ 2024-05-06 • Rust 包仓库 73/week @ 2024-05-13 • Rust 包仓库 30/week @ 2024-05-20 • Rust 包仓库 122/week @ 2024-05-27 • Rust 包仓库 61/week @ 2024-06-03 • Rust 包仓库 24/week @ 2024-06-10 • Rust 包仓库 35/week @ 2024-06-17 • Rust 包仓库 184/week @ 2024-06-24 • Rust 包仓库 84/week @ 2024-07-01 • Rust 包仓库 96/week @ 2024-07-08 • Rust 包仓库

每月401次下载

WTFPL 许可证

6KB
142

typed-num

Rust中的带serde支持的类型化数字。

use typed_num::Num;
use serde_derive::{Serialize, Deserialize};

#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
struct Config {
    version: Num<3>,
    hash: String,
}

const OLD_CONFIG: &str = r#"
version = 2
hash = "OoXQqX+ZRNE7VLmkbhGlj2R1B3n3gAJAaGh9kS0mAv8="
"#;

const NEW_CONFIG: &str = r#"
version = 3
hash = "OoXQqX+ZRNE7VLmkbhGlj2R1B3n3gAJAaGh9kS0mAv8="
"#;

let new_config = Config {
    version: Num,
    hash: "OoXQqX+ZRNE7VLmkbhGlj2R1B3n3gAJAaGh9kS0mAv8=".to_string(),
};

toml::from_str::<Config>(OLD_CONFIG).unwrap_err();
assert_eq!(toml::from_str::<Config>(NEW_CONFIG).unwrap(), new_config);
assert_eq!(toml::to_string_pretty(&new_config).unwrap().trim(), NEW_CONFIG.trim());

依赖关系

~110–350KB