twilight_model/gateway/presence/
activity.rs1use crate::{
2 gateway::presence::{
3 ActivityAssets, ActivityButton, ActivityEmoji, ActivityFlags, ActivityParty,
4 ActivitySecrets, ActivityTimestamps, ActivityType,
5 activity_status_display_type::ActivityStatusDisplayType,
6 },
7 id::{Id, marker::ApplicationMarker},
8};
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
12pub struct Activity {
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub application_id: Option<Id<ApplicationMarker>>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub assets: Option<ActivityAssets>,
17 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18 pub buttons: Vec<ActivityButton>,
19 pub created_at: Option<u64>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub details: Option<String>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub details_url: Option<String>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub emoji: Option<ActivityEmoji>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub flags: Option<ActivityFlags>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub id: Option<String>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub instance: Option<bool>,
34 #[serde(default = "ActivityType::default", rename = "type")]
35 pub kind: ActivityType,
36 pub name: String,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub party: Option<ActivityParty>,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub secrets: Option<ActivitySecrets>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub state: Option<String>,
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub state_url: Option<String>,
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub timestamps: Option<ActivityTimestamps>,
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub url: Option<String>,
49 #[serde(skip_serializing_if = "Option::is_none")]
50 pub status_display_type: Option<ActivityStatusDisplayType>,
51}
52
53#[cfg(test)]
54mod tests {
55 }