ruma_common/directory/
filter_room_type_serde.rs1use 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}