use std::collections::HashMap; use bloomchain::{Position, Bloom, BloomDatabase}; use bloomchain::group::{GroupPosition, BloomGroup, BloomGroupDatabase}; #[derive(Default)] pub struct BloomMemoryDatabase { mem: HashMap, } impl BloomMemoryDatabase { #[allow(dead_code)] pub fn insert_blooms(&mut self, blooms: HashMap) { self.mem.extend(blooms); } } impl BloomDatabase for BloomMemoryDatabase { fn bloom_at(&self, position: &Position) -> Option { self.mem.get(position).cloned() } } #[derive(Default)] pub struct BloomGroupMemoryDatabase { mem: HashMap, } impl BloomGroupMemoryDatabase { #[allow(dead_code)] pub fn insert_blooms(&mut self, groups: HashMap) { self.mem.extend(groups); } } impl BloomGroupDatabase for BloomGroupMemoryDatabase { fn blooms_at(&self, position: &GroupPosition) -> Option { self.mem.get(position).cloned() } }