#[derive(Debug, Clone)]
pub struct KOptConfig {
pub k: usize,
pub min_segment_len: usize,
pub limited_patterns: bool,
}
impl KOptConfig {
pub fn new(k: usize) -> Self {
assert!((2..=5).contains(&k), "k must be between 2 and 5");
Self {
k,
min_segment_len: 1,
limited_patterns: false,
}
}
pub fn with_min_segment_len(mut self, len: usize) -> Self {
self.min_segment_len = len;
self
}
pub fn with_limited_patterns(mut self, limited: bool) -> Self {
self.limited_patterns = limited;
self
}
}