ferrischat_common/types/
member.rs1use crate::types::{Guild, User};
2use serde::ser::SerializeStruct;
3use serde::{Serialize, Serializer};
4
5#[derive(Deserialize, Clone)]
6pub struct Member {
7 pub user_id: Option<u128>,
8 pub user: Option<User>,
9
10 pub guild_id: Option<u128>,
11 pub guild: Option<Guild>,
12}
13
14impl Serialize for Member {
15 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
16 where
17 S: Serializer,
18 {
19 let mut self_ser = serializer.serialize_struct("Member", 6)?;
20
21 self_ser.serialize_field("user_id", &self.user_id)?;
22 self_ser.serialize_field("user_id_string", &self.user_id.map(|x| x.to_string()))?;
23 self_ser.serialize_field("user", &self.user)?;
24
25 self_ser.serialize_field("guild_id", &self.guild_id)?;
26 self_ser.serialize_field("guild_id_string", &self.guild_id.map(|x| x.to_string()))?;
27 self_ser.serialize_field("guild", &self.guild)?;
28
29 self_ser.end()
30 }
31}