diff options
| author | Fuwn <[email protected]> | 2021-06-02 20:47:21 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-06-02 20:47:21 -0700 |
| commit | b21bcf823d990964d0d4b4c3a1ea6e2567280214 (patch) | |
| tree | a9fd4c07a84b874368721706881e67b55d5effb6 | |
| parent | refactor(server): replace more matches with enums (diff) | |
| download | whirl-b21bcf823d990964d0d4b4c3a1ea6e2567280214.tar.xz whirl-b21bcf823d990964d0d4b4c3a1ea6e2567280214.zip | |
refactor(server): final refactoring of replacing command type constants with enum values
| -rw-r--r-- | crates/whirl_server/src/cmd/commands/buddy_list.rs | 8 | ||||
| -rw-r--r-- | crates/whirl_server/src/cmd/commands/property/create.rs | 10 | ||||
| -rw-r--r-- | crates/whirl_server/src/cmd/commands/redirect_id.rs | 5 | ||||
| -rw-r--r-- | crates/whirl_server/src/cmd/commands/text.rs | 5 | ||||
| -rw-r--r-- | crates/whirl_server/src/cmd/constants.rs | 30 | ||||
| -rw-r--r-- | crates/whirl_server/src/net/converter.rs | 4 |
6 files changed, 16 insertions, 46 deletions
diff --git a/crates/whirl_server/src/cmd/commands/buddy_list.rs b/crates/whirl_server/src/cmd/commands/buddy_list.rs index f80c86d..9b53ac2 100644 --- a/crates/whirl_server/src/cmd/commands/buddy_list.rs +++ b/crates/whirl_server/src/cmd/commands/buddy_list.rs @@ -6,10 +6,7 @@ use std::str::from_utf8; use bytes::{BufMut, BytesMut}; use num_traits::AsPrimitive; -use crate::cmd::{ - constants::BUDDYLISTNOTIFY, - extendable::{Creatable, Parsable}, -}; +use crate::cmd::extendable::{Creatable, Parsable}; pub struct BuddyList { pub buddy: String, @@ -33,7 +30,8 @@ impl Creatable for BuddyList { // Header command.put_u8(0x01); // ObjId - command.put_i8(BUDDYLISTNOTIFY.as_(): i8); // Type + #[allow(clippy::cast_possible_truncation)] + command.put_i8(crate::cmd::constants::Command::BuddyListNotify as i32 as i8); // Type // Content command.put_u8(self.buddy.len().as_(): u8); // Buddy (name) length diff --git a/crates/whirl_server/src/cmd/commands/property/create.rs b/crates/whirl_server/src/cmd/commands/property/create.rs index 94cf75b..d689857 100644 --- a/crates/whirl_server/src/cmd/commands/property/create.rs +++ b/crates/whirl_server/src/cmd/commands/property/create.rs @@ -6,7 +6,7 @@ use whirl_config::Config; use crate::{ - cmd::constants::{PROPUPD, SESSINIT}, + cmd::constants::Command, net::{ constants::{ VAR_APPNAME, @@ -29,7 +29,7 @@ use crate::{ pub fn property_update_as_distributor() -> Vec<u8> { property_list_to_bytes( - PROPUPD, + Command::PropUpd as i32, 0xFF, vec![ NetworkProperty { @@ -66,7 +66,7 @@ pub fn property_update_as_distributor() -> Vec<u8> { pub fn property_update_as_hub() -> Vec<u8> { property_list_to_bytes( - PROPUPD, + Command::PropUpd as i32, 0xFF, vec![ NetworkProperty { @@ -107,7 +107,7 @@ pub fn property_update_as_hub() -> Vec<u8> { pub fn property_request_as_distributor() -> Vec<u8> { property_list_to_bytes( - SESSINIT as i32, + Command::SessInit as i32, 0x01, vec![ NetworkProperty { @@ -144,7 +144,7 @@ pub fn property_request_as_distributor() -> Vec<u8> { pub fn property_request_as_hub() -> Vec<u8> { property_list_to_bytes( - SESSINIT as i32, + Command::SessInit as i32, 0x01, vec![ NetworkProperty { diff --git a/crates/whirl_server/src/cmd/commands/redirect_id.rs b/crates/whirl_server/src/cmd/commands/redirect_id.rs index 9727107..3a7bb83 100644 --- a/crates/whirl_server/src/cmd/commands/redirect_id.rs +++ b/crates/whirl_server/src/cmd/commands/redirect_id.rs @@ -5,7 +5,7 @@ use bytes::{BufMut, BytesMut}; use num_traits::AsPrimitive; use whirl_config::Config; -use crate::cmd::{constants::REDIRID, extendable::Creatable}; +use crate::cmd::{constants::Command, extendable::Creatable}; #[derive(Debug)] pub struct RedirectId { @@ -18,7 +18,8 @@ impl Creatable for RedirectId { // Header command.put_u8(0x01); // ObjId - command.put_u8(REDIRID.as_(): u8); // Type + #[allow(clippy::cast_possible_truncation)] + command.put_i8(Command::RedirId as i32 as i8); // Type // Content command.put_u8(self.room_name.len().as_(): u8); // Room name length diff --git a/crates/whirl_server/src/cmd/commands/text.rs b/crates/whirl_server/src/cmd/commands/text.rs index 414dc64..d2fddf6 100644 --- a/crates/whirl_server/src/cmd/commands/text.rs +++ b/crates/whirl_server/src/cmd/commands/text.rs @@ -7,7 +7,7 @@ use bytes::{BufMut, BytesMut}; use num_traits::AsPrimitive; use crate::cmd::{ - constants::TEXT, + constants::Command, extendable::{Creatable, ParsableWithArguments}, }; @@ -21,7 +21,8 @@ impl Creatable for Text { // Header command.put_u8(0x01); - command.put_i8(TEXT.as_(): i8); + #[allow(clippy::cast_possible_truncation)] + command.put_i8(Command::Text as i32 as i8); // Content // TODO: Find a way to parse ObjIds. diff --git a/crates/whirl_server/src/cmd/constants.rs b/crates/whirl_server/src/cmd/constants.rs index ac17798..fc3f246 100644 --- a/crates/whirl_server/src/cmd/constants.rs +++ b/crates/whirl_server/src/cmd/constants.rs @@ -35,33 +35,3 @@ pub enum Command { BuddyListNotify, Channel, } - -pub const LONGLOC: i32 = 1; -pub const STATE: i32 = 2; -pub const PROP: i32 = 3; -pub const SHORTLOC: i32 = 4; -pub const ROOMCHNG: i32 = 5; -pub const SESSINIT: i32 = 6; -pub const SESSEXIT: i32 = 7; -pub const APPINIT: i32 = 8; -pub const PROPREQ: i32 = 10; -pub const DISAPPR: i32 = 11; -pub const APPRACTR: i32 = 12; -pub const REGOBJID: i32 = 13; -pub const TEXT: i32 = 14; -pub const PROPSET: i32 = 15; -pub const PROPUPD: i32 = 16; -pub const WHISPER: i32 = 17; -pub const TELEPORT: i32 = 18; -pub const ROOMIDRQ: i32 = 20; -pub const ROOMID: i32 = 21; -pub const SUBSCRIB: i32 = 22; -pub const UNSUBSCR: i32 = 23; -pub const SUB_DIST: i32 = 24; // SUB-DIST -pub const REDIRECT: i32 = 25; -pub const REDIRID: i32 = 26; -pub const FINGREQ: i32 = 27; -pub const FINGREP: i32 = 28; -pub const BUDDYLISTUPDATE: i32 = 29; -pub const BUDDYLISTNOTIFY: i32 = 30; -pub const CHANNEL: i32 = 31; diff --git a/crates/whirl_server/src/net/converter.rs b/crates/whirl_server/src/net/converter.rs index d337d1a..1b36e78 100644 --- a/crates/whirl_server/src/net/converter.rs +++ b/crates/whirl_server/src/net/converter.rs @@ -5,7 +5,7 @@ use bytes::{BufMut, BytesMut}; use num_traits::AsPrimitive; use crate::{ - cmd::constants::PROPUPD, + cmd::constants::Command, net::{ constants::{PROPACCESS_POSSESS, PROPFLAG_DBSTORE}, structure::NetworkProperty, @@ -33,7 +33,7 @@ pub fn property_list_to_bytes( command.put_u8(property.prop_id.as_(): u8); // Property ID // NOTE: THIS IS SUPER BAD DO NOT DO THIS! But it works! - if command_id == PROPUPD { + if command_id == Command::PropUpd as i32 { command.put_u8(PROPFLAG_DBSTORE.as_(): u8); // Flag (s) command.put_u8(PROPACCESS_POSSESS.as_(): u8); // Access } |