twilight_model/voice/
opcode.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(u8)]
7pub enum OpCode {
8 Identify = 0,
10 SelectProtocol = 1,
12 Ready = 2,
14 Heartbeat = 3,
16 SessionDescription = 4,
18 Speaking = 5,
20 HeartbeatAck = 6,
22 Resume = 7,
24 Hello = 8,
26 Resumed = 9,
28 ClientDisconnect = 13,
30}
31
32#[cfg(test)]
33mod tests {
34 use super::OpCode;
35 use serde_test::Token;
36
37 #[test]
38 fn variants() {
39 serde_test::assert_tokens(&OpCode::Identify, &[Token::U8(0)]);
40 serde_test::assert_tokens(&OpCode::SelectProtocol, &[Token::U8(1)]);
41 serde_test::assert_tokens(&OpCode::Ready, &[Token::U8(2)]);
42 serde_test::assert_tokens(&OpCode::Heartbeat, &[Token::U8(3)]);
43 serde_test::assert_tokens(&OpCode::SessionDescription, &[Token::U8(4)]);
44 serde_test::assert_tokens(&OpCode::Speaking, &[Token::U8(5)]);
45 serde_test::assert_tokens(&OpCode::HeartbeatAck, &[Token::U8(6)]);
46 serde_test::assert_tokens(&OpCode::Resume, &[Token::U8(7)]);
47 serde_test::assert_tokens(&OpCode::Hello, &[Token::U8(8)]);
48 serde_test::assert_tokens(&OpCode::Resumed, &[Token::U8(9)]);
49 serde_test::assert_tokens(&OpCode::ClientDisconnect, &[Token::U8(13)]);
50 }
51}