diff -r 99ad55974e62 -r d5b0e496b72f src/bisection_tree/refine.rs --- a/src/bisection_tree/refine.rs Mon Dec 30 15:46:28 2024 -0500 +++ b/src/bisection_tree/refine.rs Mon Jan 06 20:29:25 2025 -0500 @@ -3,6 +3,7 @@ use std::cmp::{PartialOrd, Ord, Ordering, Ordering::*, max}; use std::marker::PhantomData; use std::sync::{Arc, Mutex, MutexGuard, Condvar}; +use serde::{Serialize, Deserialize}; use crate::types::*; use crate::nanleast::NaNLeast; use crate::sets::Cube; @@ -35,12 +36,20 @@ /// An [`AggregatorSorting`] for [`Bounds`], using the upper/lower bound as the upper/lower key. /// /// See [`LowerBoundSorting`] for the opposite ordering. -pub struct UpperBoundSorting(PhantomData); +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct UpperBoundSorting( + #[serde(skip)] + PhantomData +); /// An [`AggregatorSorting`] for [`Bounds`], using the upper/lower bound as the lower/upper key. /// /// See [`UpperBoundSorting`] for the opposite ordering. -pub struct LowerBoundSorting(PhantomData); +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct LowerBoundSorting( + #[serde(skip)] + PhantomData +); impl AggregatorSorting for UpperBoundSorting { type Agg = Bounds; @@ -136,6 +145,7 @@ } /// Structure for tracking the refinement process in a [`BinaryHeap`]. +#[derive(Debug)] struct RefinementInfo<'a, F, D, A, S, RResult, const N : usize, const P : usize> where F : Float, D : 'static, @@ -228,6 +238,7 @@ /// This is a container for a [`BinaryHeap`] of [`RefinementInfo`]s together with tracking of /// the greatest lower bound of the [`Aggregator`]s of the [`Node`]s therein accroding to /// chosen [`AggregatorSorting`]. +#[derive(Debug)] struct HeapContainer<'a, F, D, A, S, RResult, const N : usize, const P : usize> where F : Float, D : 'static + Copy,