1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
use serde::ser::{Serialize, SerializeSeq, Serializer};
use std::hash::{BuildHasher, Hash};
use NonEmptyIndexSet;

impl<K, H> Serialize for NonEmptyIndexSet<K, H>
where
    K: Serialize,
    K: Eq + Hash,
    H: BuildHasher,
{
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        let mut set = serializer.serialize_seq(Some(self.len()))?;
        for k in self.iter() {
            set.serialize_element(k)?;
        }
        set.end()
    }
}