mod mtm;
mod stm;
use std::{cell::Cell, marker::PhantomData};
use crate::{algorithm::direction::Direction, solver::small::pdb::Pdb};
pub struct Solver<const W: usize, const H: usize, const N: usize, MetricTag> {
pdb: Pdb<W, H, N, MetricTag>,
solution: [Cell<Direction>; 128],
solution_ptr: Cell<usize>,
phantom_metric_tag: PhantomData<MetricTag>,
}
impl<const W: usize, const H: usize, const N: usize, MetricTag> Solver<W, H, N, MetricTag> {
pub fn into_inner_pdb(self) -> Pdb<W, H, N, MetricTag> {
self.pdb
}
}