From cd15d4f8de1ee9bc6d00fb0a08659ca2c74d2e2d Mon Sep 17 00:00:00 2001 From: Till Höppner Date: Thu, 25 Feb 2016 06:58:22 +0100 Subject: Update Cargo.toml files with more metadata --- src/ageset.rs | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 src/ageset.rs (limited to 'src/ageset.rs') diff --git a/src/ageset.rs b/src/ageset.rs deleted file mode 100644 index c97240f..0000000 --- a/src/ageset.rs +++ /dev/null @@ -1,47 +0,0 @@ -use std::collections::HashSet; -use std::hash::Hash; - -use blist::BList; - -/// So... this is a rather weird thing. -/// It allows to semi-efficiently check the oldest (earliest insertion) -/// elements for certain criteria and remove them in the order of insertion -/// if the criteria is met. -pub struct AgeSet { - fifo: BList, - set: HashSet, -} - -impl AgeSet - where T: Eq + Hash + Clone -{ - pub fn new() -> Self { - AgeSet { - fifo: BList::new(), - set: HashSet::new(), - } - } - - pub fn contains(&self, t: &T) -> bool { - self.set.contains(t) - } - - pub fn prune(&mut self, kill: F) - where F: Fn(&T) -> bool - { - while let Some(ref e) = self.fifo.front().map(T::clone) { - if kill(&e) { - let removed = self.fifo.pop_front().unwrap(); - self.set.remove(&e); - assert!(*e == removed); - } else { - break; - } - } - } - - pub fn push(&mut self, t: T) { - self.fifo.push_back(t.clone()); - self.set.insert(t); - } -} -- cgit v1.2.3