pub fn deserialize_angle<'de, D>(
deserializer: D,
) -> Result<f64, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,Expand description
Deserializes an angle from a valid DynQuantity representation (see
docstring of DynQuantity). The output value is always in radians.
This function is meant to be used in conjunction with serdes Deserialize
macro and the deserialize_with annotation:
ยงExamples
use serde::{Deserialize};
use dyn_quantity::deserialize_angle;
use indoc::indoc;
use std::f64::consts::PI;
#[derive(Deserialize, Debug)]
struct AngleWrapper {
#[serde(deserialize_with = "deserialize_angle")]
angle: f64,
}
let ser = indoc! {"
---
angle: 360 / 2 degree
"};
let wrapper: AngleWrapper = serde_yaml::from_str(&ser).unwrap();
assert_eq!(wrapper.angle, PI);