twilight_model/voice/
close_code.rs

1use serde_repr::{Deserialize_repr, Serialize_repr};
2
3/// Voice gateway close event codes.
4#[derive(Clone, Copy, Debug, Deserialize_repr, Eq, Hash, PartialEq, Serialize_repr)]
5#[non_exhaustive]
6#[repr(u16)]
7pub enum CloseCode {
8    /// An invalid opcode was sent.
9    UnknownOpcode = 4001,
10    /// An invalid payload was sent.
11    DecodeError = 4002,
12    /// A payload was sent prior to identifying.
13    NotAuthenticated = 4003,
14    /// An invalid token was sent when identifying.
15    AuthenticationFailed = 4004,
16    /// Multiple identify payloads were sent.
17    AlreadyAuthenticated = 4005,
18    /// The session was invalidated.
19    SessionNoLongerValid = 4006,
20    /// The session timed out.
21    SessionTimedOut = 4009,
22    /// The specified voice server was not found.
23    ServerNotFound = 4011,
24    /// An unknown protocol was sent.
25    UnknownProtocol = 4012,
26    /// Disconnected from the voice channel.
27    Disconnected = 4014,
28    /// The voice server crashed.
29    VoiceServerCrashed = 4015,
30    /// The encryption could not be recognized.
31    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}