aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-05-06 00:31:08 +0000
committerFuwn <[email protected]>2021-05-06 00:31:08 +0000
commitb3ee830a430e00dc8ab8f7a10ebaf1e7c931a0ad (patch)
treefe6f5457049d0744d21cd142571662787f71eb6f /src/server
parentperf(subs): clippy (diff)
downloadwhirl-b3ee830a430e00dc8ab8f7a10ebaf1e7c931a0ad.tar.xz
whirl-b3ee830a430e00dc8ab8f7a10ebaf1e7c931a0ad.zip
refactor(server): clippy: module inception
Diffstat (limited to 'src/server')
-rw-r--r--src/server/distributor.rs2
-rw-r--r--src/server/hub.rs2
-rw-r--r--src/server/mod.rs59
-rw-r--r--src/server/server.rs60
4 files changed, 60 insertions, 63 deletions
diff --git a/src/server/distributor.rs b/src/server/distributor.rs
index cc8cfac..e84afeb 100644
--- a/src/server/distributor.rs
+++ b/src/server/distributor.rs
@@ -38,7 +38,7 @@ use crate::{
interaction::{peer::Peer, shared::Shared},
net::{constants::VAR_USERNAME, property_parser::parse_network_property},
packet_parser::parse_commands_from_packet,
- server::Server,
+ Server,
},
};
diff --git a/src/server/hub.rs b/src/server/hub.rs
index 9c9909e..b2b176e 100644
--- a/src/server/hub.rs
+++ b/src/server/hub.rs
@@ -35,7 +35,7 @@ use crate::{
interaction::{peer::Peer, shared::Shared},
net::{constants::VAR_USERNAME, property_parser::parse_network_property},
packet_parser::parse_commands_from_packet,
- server::Server,
+ Server,
},
};
diff --git a/src/server/mod.rs b/src/server/mod.rs
index 369cb38..1f986c5 100644
--- a/src/server/mod.rs
+++ b/src/server/mod.rs
@@ -8,5 +8,62 @@ pub mod net;
pub mod distributor;
pub mod hub;
mod packet_parser;
-pub mod server;
mod types;
+
+use std::{error::Error, fmt, net::SocketAddr, sync::Arc};
+
+use tokio::{
+ net::{TcpListener, TcpStream},
+ sync::Mutex,
+};
+
+use crate::server::interaction::shared::Shared;
+
+#[derive(Debug)]
+pub enum ServerType {
+ AnonRoomServer,
+ AnonUserServer,
+ AutoServer,
+ RoomServer,
+ UserServer,
+}
+// https://stackoverflow.com/a/32712140/14452787
+impl fmt::Display for ServerType {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{:?}", self) }
+}
+
+#[async_trait::async_trait]
+pub trait Server {
+ async fn listen(address: &str, server_type: ServerType) -> Result<(), Box<dyn Error>> {
+ let listener = TcpListener::bind(address).await?;
+ let state = Arc::new(Mutex::new(Shared::new()));
+ let mut counter = 0;
+
+ info!(
+ "server of type {} now listening at {}",
+ server_type.to_string(),
+ address
+ );
+
+ loop {
+ let (stream, address) = listener.accept().await?;
+ counter += 1;
+ let state = Arc::clone(&state);
+
+ trace!("accepted client at {}", address);
+
+ tokio::spawn(async move {
+ if let Err(e) = Self::handle(state, stream, address, counter).await {
+ error!("an error occurred: {}", e);
+ }
+ });
+ }
+ }
+
+ async fn handle(
+ state: Arc<Mutex<Shared>>,
+ stream: TcpStream,
+ _address: SocketAddr,
+ count: usize,
+ ) -> Result<(), Box<dyn Error>>;
+}
diff --git a/src/server/server.rs b/src/server/server.rs
deleted file mode 100644
index 1be6faa..0000000
--- a/src/server/server.rs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
-// SPDX-License-Identifier: GPL-3.0-only
-
-use std::{error::Error, fmt, net::SocketAddr, sync::Arc};
-
-use tokio::{
- net::{TcpListener, TcpStream},
- sync::Mutex,
-};
-
-use crate::server::interaction::shared::Shared;
-
-#[derive(Debug)]
-pub enum ServerType {
- AnonRoomServer,
- AnonUserServer,
- AutoServer,
- RoomServer,
- UserServer,
-}
-// https://stackoverflow.com/a/32712140/14452787
-impl fmt::Display for ServerType {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{:?}", self) }
-}
-
-#[async_trait::async_trait]
-pub trait Server {
- async fn listen(address: &str, server_type: ServerType) -> Result<(), Box<dyn Error>> {
- let listener = TcpListener::bind(address).await?;
- let state = Arc::new(Mutex::new(Shared::new()));
- let mut counter = 0;
-
- info!(
- "server of type {} now listening at {}",
- server_type.to_string(),
- address
- );
-
- loop {
- let (stream, address) = listener.accept().await?;
- counter += 1;
- let state = Arc::clone(&state);
-
- trace!("accepted client at {}", address);
-
- tokio::spawn(async move {
- if let Err(e) = Self::handle(state, stream, address, counter).await {
- error!("an error occurred: {}", e);
- }
- });
- }
- }
-
- async fn handle(
- state: Arc<Mutex<Shared>>,
- stream: TcpStream,
- _address: SocketAddr,
- count: usize,
- ) -> Result<(), Box<dyn Error>>;
-}