use crate::{
Segment,
client::{braiding::strand_heap::StrandHeap, convergence_map::ConvergenceStorage},
storage::TraversalBuffers,
};
pub(crate) struct BraidBuffer<S> {
pub strands: StrandHeap<S>,
pub convergence: ConvergenceStorage,
}
impl<S: Segment> BraidBuffer<S> {
pub(crate) const fn new() -> Self {
Self {
strands: StrandHeap::new(),
convergence: ConvergenceStorage::new(),
}
}
}
impl<S: Segment> Default for BraidBuffer<S> {
fn default() -> Self {
Self::new()
}
}
pub struct RuntimeBuffers<S> {
pub traversal: TraversalBuffers,
pub(crate) braid: BraidBuffer<S>,
}
impl<S: Segment> RuntimeBuffers<S> {
pub const fn new() -> Self {
Self {
traversal: TraversalBuffers::new(),
braid: BraidBuffer::new(),
}
}
}
impl<S: Segment> Default for RuntimeBuffers<S> {
fn default() -> Self {
Self::new()
}
}