polyphony_types/events/
presence.rs

1use serde::{Deserialize, Serialize};
2use crate::entities::User;
3use crate::events::WebSocketEvent;
4use crate::interfaces::Activity;
5
6#[derive(Debug, Deserialize, Serialize, Default, Clone)]
7/// See https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields
8pub struct PresenceUpdate {
9    pub user: User,
10    pub guild_id: String,
11    pub status: String,
12    pub activities: Vec<Activity>,
13    pub client_status: ClientStatusObject,
14}
15
16#[derive(Debug, Deserialize, Serialize, Default, Clone)]
17/// See https://discord.com/developers/docs/topics/gateway-events#client-status-object
18pub struct ClientStatusObject {
19    pub desktop: Option<String>,
20    pub mobile: Option<String>,
21    pub web: Option<String>,
22}
23
24impl WebSocketEvent for PresenceUpdate {}