ruma_common/directory/
filter_room_type_serde.rs

1use std::borrow::Cow;
2
3use serde::{Deserialize, Deserializer, Serialize, Serializer};
4
5use super::RoomTypeFilter;
6
7impl Serialize for RoomTypeFilter {
8    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
9    where
10        S: Serializer,
11    {
12        self.as_str().serialize(serializer)
13    }
14}
15
16impl<'de> Deserialize<'de> for RoomTypeFilter {
17    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
18    where
19        D: Deserializer<'de>,
20    {
21        let s = Option::<Cow<'_, str>>::deserialize(deserializer)?;
22        Ok(s.into())
23    }
24}