#typed #bincode #numbers #num #serialization #serde #serde-derive #partial-eq

typed-num

Typed number in Rust with serde and bincode support

3 releases (breaking)

0.3.0 May 10, 2025
0.2.0 Mar 22, 2023
0.1.0 Mar 22, 2023

#1888 in Encoding

Download history 670/week @ 2025-10-28 543/week @ 2025-11-04 382/week @ 2025-11-11 245/week @ 2025-11-18 248/week @ 2025-11-25 229/week @ 2025-12-02 252/week @ 2025-12-09 238/week @ 2025-12-16 232/week @ 2025-12-23 152/week @ 2025-12-30 121/week @ 2026-01-06 239/week @ 2026-01-13 324/week @ 2026-01-20 414/week @ 2026-01-27 313/week @ 2026-02-03 103/week @ 2026-02-10

1,191 downloads per month

WTFPL license

17KB
356 lines

typed-num

Typed number in Rust with serde and bincode support.

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());

Dependencies

~145–445KB