toolchest/deep/equal.rs
1//! Deep equality utilities
2
3use std::collections::HashMap;
4
5/// Deep equality for HashMap values using PartialEq on values
6pub fn deep_equal<K, V>(a: &HashMap<K, V>, b: &HashMap<K, V>) -> bool
7where
8 K: Eq + std::hash::Hash,
9 V: PartialEq,
10{
11 if a.len() != b.len() {
12 return false;
13 }
14 a.iter().all(|(k, v)| b.get(k) == Some(v))
15}
16
17/// Deep equality for slices using PartialEq
18pub fn deep_equal_slice<T: PartialEq>(a: &[T], b: &[T]) -> bool {
19 a == b
20}