federation-api: Move Visitor declaration into deserialize function

This commit is contained in:
Jonas Platte 2020-12-15 14:35:46 +01:00
parent 212153ea5f
commit 87e821094c
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67

View File

@ -7,6 +7,12 @@ use serde::{
Deserialize, Serialize,
};
#[derive(Deserialize, Serialize)]
struct WrappedError {
#[serde(skip_serializing_if = "Option::is_none")]
error: Option<String>,
}
pub fn serialize<S>(
response: &BTreeMap<EventId, Result<(), String>>,
serializer: S,
@ -33,18 +39,9 @@ pub fn deserialize<'de, D>(
where
D: Deserializer<'de>,
{
deserializer.deserialize_map(PduProcessResponseVisitor)
}
struct PduProcessResponseVisitor;
#[derive(Deserialize, Serialize)]
struct WrappedError {
#[serde(skip_serializing_if = "Option::is_none")]
error: Option<String>,
}
struct PduProcessResponseVisitor;
impl<'de> Visitor<'de> for PduProcessResponseVisitor {
impl<'de> Visitor<'de> for PduProcessResponseVisitor {
type Value = BTreeMap<EventId, Result<(), String>>;
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
@ -66,6 +63,9 @@ impl<'de> Visitor<'de> for PduProcessResponseVisitor {
}
Ok(map)
}
}
deserializer.deserialize_map(PduProcessResponseVisitor)
}
#[cfg(test)]