use serde::ser::SerializeStruct;
use serde::{Serialize, Serializer};
#[derive(Deserialize, Clone)]
pub struct Invite {
pub code: String,
pub owner_id: u128,
pub guild_id: u128,
pub created_at: i64,
pub uses: i32,
pub max_uses: Option<i16>,
pub max_age: Option<i64>,
}
impl Serialize for Invite {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let mut self_ser = serializer.serialize_struct("Invite", 9)?;
self_ser.serialize_field("code", &self.code)?;
self_ser.serialize_field("owner_id", &self.owner_id)?;
self_ser.serialize_field("owner_id_string", &self.owner_id.to_string())?;
self_ser.serialize_field("guild_id", &self.guild_id)?;
self_ser.serialize_field("guild_id_string", &self.guild_id.to_string())?;
self_ser.serialize_field("created_at", &self.created_at)?;
self_ser.serialize_field("uses", &self.uses)?;
self_ser.serialize_field("max_uses", &self.max_uses)?;
self_ser.serialize_field("max_age", &self.max_age)?;
self_ser.end()
}
}