twilight_model/voice/
close_code.rs1use serde_repr::{Deserialize_repr, Serialize_repr};
2
3#[derive(Clone, Copy, Debug, Deserialize_repr, Eq, Hash, PartialEq, Serialize_repr)]
5#[non_exhaustive]
6#[repr(u16)]
7pub enum CloseCode {
8 UnknownOpcode = 4001,
10 DecodeError = 4002,
12 NotAuthenticated = 4003,
14 AuthenticationFailed = 4004,
16 AlreadyAuthenticated = 4005,
18 SessionNoLongerValid = 4006,
20 SessionTimedOut = 4009,
22 ServerNotFound = 4011,
24 UnknownProtocol = 4012,
26 Disconnected = 4014,
28 VoiceServerCrashed = 4015,
30 UnknownEncryptionMode = 4016,
32}
33
34#[cfg(test)]
35mod tests {
36 use super::CloseCode;
37 use serde_test::Token;
38
39 #[test]
40 fn variants() {
41 serde_test::assert_tokens(&CloseCode::UnknownOpcode, &[Token::U16(4001)]);
42 serde_test::assert_tokens(&CloseCode::DecodeError, &[Token::U16(4002)]);
43 serde_test::assert_tokens(&CloseCode::NotAuthenticated, &[Token::U16(4003)]);
44 serde_test::assert_tokens(&CloseCode::AuthenticationFailed, &[Token::U16(4004)]);
45 serde_test::assert_tokens(&CloseCode::AlreadyAuthenticated, &[Token::U16(4005)]);
46 serde_test::assert_tokens(&CloseCode::SessionTimedOut, &[Token::U16(4009)]);
47 serde_test::assert_tokens(&CloseCode::ServerNotFound, &[Token::U16(4011)]);
48 serde_test::assert_tokens(&CloseCode::UnknownProtocol, &[Token::U16(4012)]);
49 serde_test::assert_tokens(&CloseCode::Disconnected, &[Token::U16(4014)]);
50 serde_test::assert_tokens(&CloseCode::VoiceServerCrashed, &[Token::U16(4015)]);
51 serde_test::assert_tokens(&CloseCode::UnknownEncryptionMode, &[Token::U16(4016)]);
52 }
53}