1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use crate::{
    gateway::presence::{Activity, ClientStatus, Status, UserOrId},
    id::{GuildId, RoleId},
};
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct PresenceUpdate {
    #[serde(default)]
    pub activities: Vec<Activity>,
    pub client_status: ClientStatus,
    pub game: Option<Activity>,
    pub guild_id: Option<GuildId>,
    pub nick: Option<String>,
    pub premium_since: Option<String>,
    pub roles: Option<Vec<RoleId>>,
    pub status: Status,
    pub user: UserOrId,
}