twilight_model/gateway/presence/
status.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
4pub enum Status {
5 #[serde(rename = "dnd")]
6 DoNotDisturb,
7 #[serde(rename = "idle")]
8 Idle,
9 #[serde(rename = "invisible")]
10 Invisible,
11 #[serde(rename = "offline")]
12 Offline,
13 #[serde(rename = "online")]
14 Online,
15}
16
17#[cfg(test)]
18mod tests {
19 use super::Status;
20 use serde_test::Token;
21
22 #[test]
23 fn variants() {
24 serde_test::assert_tokens(
25 &Status::DoNotDisturb,
26 &[Token::UnitVariant {
27 name: "Status",
28 variant: "dnd",
29 }],
30 );
31 serde_test::assert_tokens(
32 &Status::Idle,
33 &[Token::UnitVariant {
34 name: "Status",
35 variant: "idle",
36 }],
37 );
38 serde_test::assert_tokens(
39 &Status::Invisible,
40 &[Token::UnitVariant {
41 name: "Status",
42 variant: "invisible",
43 }],
44 );
45 serde_test::assert_tokens(
46 &Status::Offline,
47 &[Token::UnitVariant {
48 name: "Status",
49 variant: "offline",
50 }],
51 );
52 serde_test::assert_tokens(
53 &Status::Online,
54 &[Token::UnitVariant {
55 name: "Status",
56 variant: "online",
57 }],
58 );
59 }
60}