pub struct BoolSet {
rule_used: Vec<bool>,
}
impl BoolSet {
pub fn new(num_rules: usize) -> Self {
Self {
rule_used: vec![false; num_rules],
}
}
pub fn get_and_set(&mut self, index: usize) -> bool {
let result = self.rule_used[index];
self.rule_used[index] = true;
result
}
pub fn reset(&mut self) {
self.rule_used.fill(false);
}
}