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).map_or(false, |vb| vb == 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}
21
22