feat: improve ergonomics for serialization format
Goal: To make the serialization format more sensible instead of it being a reflection of our internal (ie private) data model. - mostly handled with #[serde()] macros (renaming, flattening) - renamed NetworkCoordinate::position to heightvec which is a better name, even if not seen in the published interface - changed HeightVector from a tuple struct to a named struct so we can control serde on a field-by-field basis - updated README, tests, and doc tests to match Signed-off-by: Stephen Waits <steve@waits.net>
This commit is contained in:
1 parent
3cb28947f6
commit
02c99ae0de
5 files changed
+105
-61
No files matched your search
+2
-1
@@ -24,6 +24,7 @@ pub(crate) struct Vector<T, const N: usize>
|
||||
where
|
||||
T: Float + Serialize + for<'d> Deserialize<'d>,
|
||||
{
|
||||
#[serde(rename = "position")]
|
||||
#[serde_as(as = "[_; N]")]
|
||||
inner: [T; N],
|
||||
}
|
||||
@@ -279,7 +280,7 @@ mod tests {
|
||||
fn test_serde() {
|
||||
let a = Vector::<f32, 3>::from([1.0, 2.0, 3.0]);
|
||||
let s = serde_json::to_string(&a);
|
||||
assert_eq!(s.as_ref().unwrap(), "{\"inner\":[1.0,2.0,3.0]}");
|
||||
assert_eq!(s.as_ref().unwrap(), "{\"position\":[1.0,2.0,3.0]}");
|
||||
assert!(s.is_ok());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user