1use crate::Map;
2
3impl<K: Clone + PartialEq, V: Clone, const N: usize> Clone for Map<K, V, N> {
4 fn clone(&self) -> Self {
5 let mut m: Self = Self::new();
6 for i in 0..self.len {
7 m.item_write(i, self.item_ref(i).clone());
8 }
9 m.len = self.len;
10 m
11 }
12}
13
14#[cfg(test)]
15mod test {
16 use super::*;
17
18 #[test]
19 fn map_can_be_cloned() {
20 let mut m: Map<u8, u8, 16> = Map::new();
21 m.insert(0, 42);
22 assert_eq!(42, *m.clone().get(&0).unwrap());
23 }
24
25 #[test]
26 fn empty_map_can_be_cloned() {
27 let m: Map<u8, u8, 0> = Map::new();
28 assert!(m.clone().is_empty());
29 }
30}