yadf 1.3.0

yet another dupes finder
Documentation
use super::{Replicates, TreeBag};
use serde::ser::{Serialize, Serializer};

impl<K, V> Serialize for Replicates<'_, K, V>
where
    V: Serialize,
{
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        serializer.collect_seq(self.iter())
    }
}

impl<K, V> Serialize for TreeBag<K, V>
where
    K: Serialize,
    V: Serialize,
{
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        serializer.collect_map(self.0.iter())
    }
}

#[cfg(test)]
mod tests {
    use super::super::TreeBag;

    #[test]
    fn json() {
        let counter: TreeBag<i32, &str> = vec![
            (77, "hello"),
            (77, "world"),
            (1, "ignored"),
            (3, "foo"),
            (3, "bar"),
        ]
        .into_iter()
        .collect();
        let result = serde_json::to_string(&counter.duplicates()).unwrap();
        let expected = r#"[["foo","bar"],["hello","world"]]"#;
        assert_eq!(result, expected);
    }
}