twilight_model/gateway/presence/
status.rs

1use 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}