use serde::{Deserialize, Serialize};
#[serde_with::skip_serializing_none]
#[derive(Default, Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
pub struct Acceleration {
pub value: i16,
pub confidence: u8,
}
#[serde_with::skip_serializing_none]
#[derive(Default, Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
pub struct AccelerationMagnitude {
pub value: u8,
pub confidence: u8,
}
#[cfg(test)]
mod tests {
use crate::exchange::etsi::acceleration::{Acceleration, AccelerationMagnitude};
#[test]
fn test_deserialize_acceleration() {
let data = r#"{
"value": 161,
"confidence": 102
}"#;
match serde_json::from_str::<Acceleration>(data) {
Ok(object) => {
assert_eq!(object.value, 161);
assert_eq!(object.confidence, 102);
}
Err(e) => panic!("Failed to deserialize an Acceleration: '{e}'"),
}
}
#[test]
fn test_deserialize_acceleration_magnitude() {
let data = r#"{
"value": 161,
"confidence": 102
}"#;
match serde_json::from_str::<AccelerationMagnitude>(data) {
Ok(object) => {
assert_eq!(object.value, 161);
assert_eq!(object.confidence, 102);
}
Err(e) => panic!("Failed to deserialize an Acceleration Magnitude: '{e}'"),
}
}
}