1#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3pub enum Command {
4 Connect,
5 Bind,
6 Associate,
7}
8
9impl Command {
10 const CONNECT: u8 = 0x01;
11 const BIND: u8 = 0x02;
12 const ASSOCIATE: u8 = 0x03;
13}
14
15impl TryFrom<u8> for Command {
16 type Error = u8;
17
18 fn try_from(code: u8) -> Result<Self, Self::Error> {
19 match code {
20 Self::CONNECT => Ok(Self::Connect),
21 Self::BIND => Ok(Self::Bind),
22 Self::ASSOCIATE => Ok(Self::Associate),
23 code => Err(code),
24 }
25 }
26}
27
28impl From<Command> for u8 {
29 fn from(cmd: Command) -> Self {
30 match cmd {
31 Command::Connect => Command::CONNECT,
32 Command::Bind => Command::BIND,
33 Command::Associate => Command::ASSOCIATE,
34 }
35 }
36}