diff --git a/crates/matrix-sdk-base/src/store/observable_map.rs b/crates/matrix-sdk-base/src/store/observable_map.rs index 4c6626979..77c696522 100644 --- a/crates/matrix-sdk-base/src/store/observable_map.rs +++ b/crates/matrix-sdk-base/src/store/observable_map.rs @@ -147,6 +147,11 @@ where Some(self.values.remove(position)) } + + /// Get the number of values. + pub(crate) fn len(&self) -> usize { + self.mapping.len() + } } #[cfg(test)] @@ -295,4 +300,21 @@ mod tests { drop(map); assert_closed!(stream); } + + #[test] + fn test_len() { + let mut map = ObservableMap::::new(); + + assert_eq!(map.len(), 0); + + map.insert('a', 'e'); + map.insert('b', 'f'); + map.insert('c', 'g'); + + assert_eq!(map.len(), 3); + + map.remove(&'b'); + + assert_eq!(map.len(), 2); + } }