aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-06-02 20:47:21 -0700
committerFuwn <[email protected]>2021-06-02 20:47:21 -0700
commitb21bcf823d990964d0d4b4c3a1ea6e2567280214 (patch)
treea9fd4c07a84b874368721706881e67b55d5effb6
parentrefactor(server): replace more matches with enums (diff)
downloadwhirl-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.rs8
-rw-r--r--crates/whirl_server/src/cmd/commands/property/create.rs10
-rw-r--r--crates/whirl_server/src/cmd/commands/redirect_id.rs5
-rw-r--r--crates/whirl_server/src/cmd/commands/text.rs5
-rw-r--r--crates/whirl_server/src/cmd/constants.rs30
-rw-r--r--crates/whirl_server/src/net/converter.rs4
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
}