Fix issue with serialisation
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Joshua Coles 2023-03-04 21:00:34 +00:00
parent 63d2bd9461
commit 1f5c94cb82

View File

@ -2,7 +2,7 @@ use std::ops::Add;
use num_integer::Integer;
use rand::Rng;
use serde::{Serialize, Serializer};
use serde::ser::SerializeMap;
use serde::ser::{SerializeMap, SerializeSeq, SerializeStruct};
use crate::system::GriddedPosition;
use crate::system::Storage;
@ -48,11 +48,11 @@ impl<const DIM: usize> Add for NDPosition<DIM> {
impl<const DIM: usize> Serialize for NDPosition<DIM> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {
let mut map = serializer.serialize_map(Some(DIM))?;
let mut ser = serializer.serialize_struct("NDPosition", DIM)?;
for (i, v) in self.0.iter().enumerate() {
map.serialize_entry(&format!("r{}", i), v)?;
ser.serialize_field(Box::leak(Box::new(format!("r{i}"))), v)?;
}
map.end()
ser.end()
}
}