diff -r c5d8bd1a7728 -r 0f59c0d02e13 src/measures/discrete.rs --- a/src/measures/discrete.rs Thu Jan 23 23:35:28 2025 +0100 +++ b/src/measures/discrete.rs Mon Jan 06 21:37:03 2025 -0500 @@ -6,7 +6,7 @@ Index,IndexMut, }; use std::iter::Sum; -use serde::ser::{Serializer, Serialize, SerializeSeq}; +use serde::{Serialize, Deserialize}; use nalgebra::DVector; use alg_tools::norms::Norm; @@ -26,7 +26,7 @@ /// This is the measure $μ = ∑_{k=1}^n α_k δ_{x_k}$, consisting of several /// [`DeltaMeasure`], i.e., “spikes” $α_k δ_{x_k}$ with weights $\alpha_k$ in `F` at locations /// $x_k$ in `Domain`. -#[derive(Clone,Debug)] +#[derive(Clone,Debug,Serialize,Deserialize)] pub struct DiscreteMeasure { pub(super) spikes : Vec>, } @@ -456,25 +456,6 @@ } } -// Need to manually implement serialisation for DeltaMeasure, F> [`csv`] writer fails on -// structs with nested arrays as well as with #[serde(flatten)]. -// Then derive no longer works for DiscreteMeasure -impl Serialize for DiscreteMeasure, F> -where - F: Serialize, -{ - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - let mut s = serializer.serialize_seq(Some(self.spikes.len()))?; - for δ in self.spikes.iter() { - s.serialize_element(δ)?; - } - s.end() - } -} - impl Measure for DiscreteMeasure { type Domain = Domain; }