1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use std::collections::HashSet; use crate::types::*; #[derive(Default)] pub struct Cache { pub(crate) visited: HashSet<AnaValue>, visited_max_size: usize, } impl Cache { pub fn new(visited_max_size: usize) -> Cache { Cache { visited: HashSet::with_capacity(visited_max_size), visited_max_size: visited_max_size, } } pub fn clear(&mut self) { self.visited.clear(); } pub fn check(&mut self) { if self.visited_max_size > 0 && (self.visited.len() > self.visited_max_size) { self.visited.clear(); } } }