diff -r 99ad55974e62 -r d5b0e496b72f src/fe_model/p2_local_model.rs --- a/src/fe_model/p2_local_model.rs Mon Dec 30 15:46:28 2024 -0500 +++ b/src/fe_model/p2_local_model.rs Mon Jan 06 20:29:25 2025 -0500 @@ -2,6 +2,7 @@ Second order polynomical (P2) models on real intervals and planar 2D simplices. */ +use serde::{Serialize, Deserialize}; use crate::types::*; use crate::loc::Loc; use crate::sets::{Set,NPolygon,SpannedHalfspace}; @@ -16,6 +17,11 @@ /// /// The type parameter `D` indicates the number of nodes. (Rust's const generics do not currently /// allow its automatic calculation from `N`.) +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(bound( + serialize = "[Loc; D] : Serialize", + deserialize = "[Loc; D] : for<'a> Deserialize<'a>", +))] pub struct Simplex(pub [Loc; D]); /// A two-dimensional planar simplex pub type PlanarSimplex = Simplex; @@ -119,6 +125,15 @@ } /// A local second order polynomical model of dimension `N` with `E` edges +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(bound( + serialize = "F : Serialize, + Loc : Serialize, + Loc : Serialize", + deserialize = "F : for<'a> Deserialize<'a>, + Loc : for<'a> Deserialize<'a>, + Loc : for<'a> Deserialize<'a>", +))] pub struct P2LocalModel { a0 : F, a1 : Loc,