Expand description

Serialize/deserialize optional Decimals as strings. This is particularly useful when using binary encoding formats.


#[derive(Serialize, Deserialize)]
pub struct StringExample {
    #[serde(with = "rust_decimal::serde::str_option")]
    value: Option<Decimal>,
}

let value = StringExample { value: Some(Decimal::from_str("123.400").unwrap()) };
assert_eq!(
    &serde_json::to_string(&value).unwrap(),
    r#"{"value":"123.400"}"#
);

let value = StringExample { value: None };
assert_eq!(
    &serde_json::to_string(&value).unwrap(),
    r#"{"value":null}"#
);

Functions