uom
uom copied to clipboard
serde: Generate `serialize()` and `deserialize()` fns for each unit
This adds a private unit_serde! macro to automatically generate unit-specific serialization and deserialization functions when the serde feature is enabled. These functions are generic over storage types (f32, f64, etc.) and can be used with serde's serialize_with and deserialize_with attributes to handle JSON values in non-base units:
#[derive(Serialize, Deserialize)]
struct MyStruct {
#[serde(serialize_with = "millimeter::serialize")]
#[serde(deserialize_with = "millimeter::deserialize")]
width: uom::si::f64::Length,
}