alef 0.79.0

Opinionated polyglot binding generator for Rust libraries
Documentation
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
use std::hash::BuildHasher;

use serde::{Serialize, Serializer};

pub(super) fn serialize_map<S, K, V, H>(map: &HashMap<K, V, H>, serializer: S) -> Result<S::Ok, S::Error>
where
    S: Serializer,
    K: Ord + Serialize,
    V: Serialize,
    H: BuildHasher,
{
    map.iter().collect::<BTreeMap<_, _>>().serialize(serializer)
}

pub(super) fn serialize_set<S, T, H>(set: &HashSet<T, H>, serializer: S) -> Result<S::Ok, S::Error>
where
    S: Serializer,
    T: Ord + Serialize,
    H: BuildHasher,
{
    set.iter().collect::<BTreeSet<_>>().serialize(serializer)
}