mirror of
https://github.com/mailscope/kumomta.git
synced 2026-09-07 11:08:56 +00:00
cidr-map: impl Serialize for CidrMap
This commit is contained in:
@@ -15,7 +15,8 @@ use mlua::{FromLua, Lua, MetaMethod, UserDataMethods};
|
||||
#[cfg(feature = "lua")]
|
||||
use mod_memoize::CacheValue;
|
||||
use serde::de::{MapAccess, Visitor};
|
||||
use serde::{Deserialize, Deserializer};
|
||||
use serde::ser::SerializeMap;
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
use std::fmt::Debug;
|
||||
use std::net::IpAddr;
|
||||
use std::str::FromStr;
|
||||
@@ -100,6 +101,22 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<V> Serialize for CidrMap<V>
|
||||
where
|
||||
V: Clone + PartialEq + Serialize,
|
||||
{
|
||||
fn serialize<S>(&self, serializer: S) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
let mut map = serializer.serialize_map(None)?;
|
||||
for (k, v) in self.iter() {
|
||||
map.serialize_entry(k, v)?;
|
||||
}
|
||||
map.end()
|
||||
}
|
||||
}
|
||||
|
||||
/// Nodes of a CidrMap can be either an InnerNode (with two children)
|
||||
/// or a leaf node.
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
|
||||
Reference in New Issue
Block a user