use clap::ValueEnum;
pub struct AlignmentPerformanceParameters<Cost> {
pub max_successors: usize,
pub max_exact_cost_function_cost: Cost,
pub closed_list: ChainingClosedList,
pub open_list: ChainingOpenList,
}
#[derive(Debug, Clone, ValueEnum)]
pub enum ChainingClosedList {
FxHashMap,
Special,
}
#[derive(Debug, Clone, ValueEnum)]
pub enum ChainingOpenList {
StdHeap,
LinearHeap,
}
impl<Cost: From<u8>> Default for AlignmentPerformanceParameters<Cost> {
fn default() -> Self {
Self {
max_successors: 1,
max_exact_cost_function_cost: 1u8.into(),
closed_list: ChainingClosedList::Special,
open_list: ChainingOpenList::LinearHeap,
}
}
}