panda/models/user/
activity.rs1use crate::models::emoji::Emoji;
2use serde::{Deserialize, Serialize};
3use serde_repr::*;
4
5use std::default::Default;
6
7#[derive(Debug, Deserialize, Serialize, PartialEq, Default)]
8pub struct Activity {
9 pub name: String,
10 #[serde(rename = "type")]
11 pub kind: ActivityKind,
12 pub url: Option<String>,
13 pub application_id: Option<String>,
15 pub details: Option<String>,
16 pub state: Option<String>,
17 pub emoji: Option<Emoji>,
18 pub party: Option<String>,
19 pub instance: Option<bool>,
22 pub flags: Option<u64>,
23}
24
25#[derive(Debug, Deserialize_repr, Serialize_repr, PartialEq)]
26#[repr(u8)]
27pub enum ActivityKind {
28 Game = 0,
29 Streaming = 1,
30 Listening = 2,
31 Custom = 4,
32}
33
34impl Default for ActivityKind {
35 fn default() -> Self {
36 Self::Game
37 }
38}
39
40impl Activity {
41 pub fn new(kind: ActivityKind, name: impl Into<String>) -> Self {
42 Self {
43 name: name.into(),
44 kind,
45 ..Default::default()
46 }
47 }
48}