diff options
Diffstat (limited to 'log_db/src/common.rs')
| -rw-r--r-- | log_db/src/common.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/log_db/src/common.rs b/log_db/src/common.rs index cbb36a8..347b851 100644 --- a/log_db/src/common.rs +++ b/log_db/src/common.rs @@ -72,6 +72,27 @@ impl LogKeySet { LogKeySet { set } } + pub fn from_slice(keys: &[LogKey]) -> Self { + assert!( + !keys.is_empty(), + "LogKeySet::from_slice must be supplied a non-empty slice" + ); + let mut set = HashSet::with_capacity(keys.len()); + keys.iter().for_each(|key| { + set.insert(key.clone()); + }); + LogKeySet { set } + } + + pub fn iter(&self) -> std::collections::hash_set::Iter<'_, LogKey> { + self.set.iter() + } + + /// The number of LogKeys in the set. + pub fn len(&self) -> usize { + self.set.len() + } + /// Insert a LogKey into the set. pub fn insert(&mut self, key: LogKey) { self.set.insert(key); |
