1#[derive(Debug, Copy, Clone, PartialEq)]
12pub enum Method {
13 NoAuthentication,
14 GSSAPI,
15 UsernamePassword,
16 IanaAssigned(u8),
17 ReservedPrivate(u8),
18 NoAcceptableMethod,
19}
20
21impl Method {
22 #[rustfmt::skip]
23 #[inline]
24 pub fn as_u8(&self) -> u8 {
25 match self {
26 Self::NoAuthentication => 0x00,
27 Self::GSSAPI => 0x01,
28 Self::UsernamePassword => 0x02,
29 Self::IanaAssigned(value) => *value,
30 Self::ReservedPrivate(value) => *value,
31 Self::NoAcceptableMethod => 0xFF,
32 }
33 }
34
35 #[rustfmt::skip]
36 #[inline]
37 pub fn from_u8(value: u8) -> Self {
38 match value {
39 0x00 => Self::NoAuthentication,
40 0x01 => Self::GSSAPI,
41 0x02 => Self::UsernamePassword,
42 0x03..=0x7F => Self::IanaAssigned(value),
43 0x80..=0xFE => Self::ReservedPrivate(value),
44 0xFF => Self::NoAcceptableMethod,
45 }
46 }
47}