From 6a1bb0980facadcc22cbae27f57782050e7924a1 Mon Sep 17 00:00:00 2001 From: bigfoot547 Date: Sat, 1 Feb 2025 00:20:54 -0600 Subject: random changes --- src/auth/types/property_map.rs | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'src/auth/types') diff --git a/src/auth/types/property_map.rs b/src/auth/types/property_map.rs index 964b06f..ddfc9ce 100644 --- a/src/auth/types/property_map.rs +++ b/src/auth/types/property_map.rs @@ -2,22 +2,33 @@ use std::fmt::Formatter; use multimap::MultiMap; use serde::de::{SeqAccess, Visitor}; use serde::{Deserializer, Serializer}; -use serde::ser::SerializeSeq; use crate::auth::Property; pub type PropertyMap = MultiMap; +pub mod legacy { + use serde::Serializer; + use super::PropertyMap; + + pub fn serialize(value: &PropertyMap, serializer: S) -> Result + where S: Serializer + { + serializer.collect_map(value.iter_all() + .filter_map(|(k, v)| { + if v.is_empty() { + None + } else { + Some((k, v.iter().map(|p| &p.value).collect::>())) + } + })) + } +} + pub fn serialize(value: &PropertyMap, serializer: S) -> Result where S: Serializer { - let mut seq = serializer.serialize_seq(Some(value.keys().len()))?; - - for (_, prop) in value.flat_iter() { - seq.serialize_element(prop)?; - } - - seq.end() + serializer.collect_seq(value.flat_iter().map(|(_, v)| v)) } pub fn deserialize<'de, D>(deserializer: D) -> Result -- cgit v1.2.3-70-g09d2