use std::collections::BTreeMap;
use serde::Deserialize;
use serde::Deserializer;
use serde::de::DeserializeSeed;
pub(crate) struct StrictStringMap<V>(pub(crate) BTreeMap<String, V>);
impl<V> StrictStringMap<V> {
pub(crate) fn into_inner(self) -> BTreeMap<String, V> {
self.0
}
}
impl<'de, V> Deserialize<'de> for StrictStringMap<V>
where
V: Deserialize<'de>,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
super::strict_string_map_seed::StrictStringMapSeed::new(
crate::constants::STRICT_STRING_MAP_MAX_ENTRIES,
crate::constants::STRICT_STRING_MAP_MAX_KEY_BYTES,
)
.deserialize(deserializer)
}
}