Function deserialize

Source
pub fn deserialize<'de, D>(deserializer: D) -> Result<u64, D::Error>
where D: Deserializer<'de>,
Expand description

Deserialize a given integer or SI prefixed packet-rate string into an u64.

Enabling the serde feature allows the use of #[serde(deserialize_with = "bity::pps::deserialize")] and #[serde(with = "bity::pps")] attributes.

#[derive(Deserialize, PartialEq, Debug)]
#[serde(rename_all = "kebab-case")]
struct Config {
    #[serde(with = "bity::pps")]
    bandwidth: u64,
    #[serde(deserialize_with = "bity::pps::deserialize")]
    nic: u64,
    #[serde(deserialize_with = "bity::pps::deserialize")]
    highest: u64,
}

assert_eq!(
    toml::from_str::<Config>(
        r#"
        bandwidth = "5.1Mp/s"
        nic = "180kp"
        highest = 12_000
        "#
    )
    .unwrap(),
    Config {
        bandwidth: 5_100_000,
        nic: 180_000,
        highest: 12_000,
    }
);