aboutsummaryrefslogtreecommitdiff
path: root/embedded-mqtt/src/connect_code.rs
diff options
context:
space:
mode:
authordiogo464 <[email protected]>2025-12-04 11:51:07 +0000
committerdiogo464 <[email protected]>2025-12-04 11:51:07 +0000
commit3289c2d9f6257f68cbdd37b78e5e79a41e9e33a1 (patch)
treeb6316df529e56a65e914e982e3c2981605e7a43c /embedded-mqtt/src/connect_code.rs
init
Diffstat (limited to 'embedded-mqtt/src/connect_code.rs')
-rw-r--r--embedded-mqtt/src/connect_code.rs58
1 files changed, 58 insertions, 0 deletions
diff --git a/embedded-mqtt/src/connect_code.rs b/embedded-mqtt/src/connect_code.rs
new file mode 100644
index 0000000..148eff6
--- /dev/null
+++ b/embedded-mqtt/src/connect_code.rs
@@ -0,0 +1,58 @@
1use crate::protocol;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum ConnectCode {
5 ConnectionAccepted,
6 UnacceptableProtocolVersion,
7 IdentifierRejected,
8 ServerUnavailable,
9 BadUsernamePassword,
10 NotAuthorized,
11 Unknown(u8),
12}
13
14impl core::fmt::Display for ConnectCode {
15 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
16 match self {
17 ConnectCode::ConnectionAccepted => write!(f, "Connection Accepted"),
18 ConnectCode::UnacceptableProtocolVersion => write!(f, "Unacceptable Protocol Version"),
19 ConnectCode::IdentifierRejected => write!(f, "Identifier Rejected"),
20 ConnectCode::ServerUnavailable => write!(f, "Server Unavailable"),
21 ConnectCode::BadUsernamePassword => write!(f, "Bad Username or Password"),
22 ConnectCode::NotAuthorized => write!(f, "Not Authorized"),
23 ConnectCode::Unknown(code) => write!(f, "Unknown({})", code),
24 }
25 }
26}
27
28impl From<u8> for ConnectCode {
29 fn from(value: u8) -> Self {
30 match value {
31 protocol::CONNACK_CODE_ACCEPTED => ConnectCode::ConnectionAccepted,
32 protocol::CONNACK_CODE_UNACCEPTABLE_PROTOCOL_VERSION => {
33 ConnectCode::UnacceptableProtocolVersion
34 }
35 protocol::CONNACK_CODE_IDENTIFIER_REJECTED => ConnectCode::IdentifierRejected,
36 protocol::CONNACK_CODE_SERVER_UNAVAILABLE => ConnectCode::ServerUnavailable,
37 protocol::CONNACK_CODE_BAD_USERNAME_PASSWORD => ConnectCode::BadUsernamePassword,
38 protocol::CONNACK_CODE_NOT_AUTHORIZED => ConnectCode::NotAuthorized,
39 code => ConnectCode::Unknown(code),
40 }
41 }
42}
43
44impl From<ConnectCode> for u8 {
45 fn from(value: ConnectCode) -> Self {
46 match value {
47 ConnectCode::ConnectionAccepted => protocol::CONNACK_CODE_ACCEPTED,
48 ConnectCode::UnacceptableProtocolVersion => {
49 protocol::CONNACK_CODE_UNACCEPTABLE_PROTOCOL_VERSION
50 }
51 ConnectCode::IdentifierRejected => protocol::CONNACK_CODE_IDENTIFIER_REJECTED,
52 ConnectCode::ServerUnavailable => protocol::CONNACK_CODE_SERVER_UNAVAILABLE,
53 ConnectCode::BadUsernamePassword => protocol::CONNACK_CODE_BAD_USERNAME_PASSWORD,
54 ConnectCode::NotAuthorized => protocol::CONNACK_CODE_NOT_AUTHORIZED,
55 ConnectCode::Unknown(code) => code,
56 }
57 }
58}