aboutsummaryrefslogtreecommitdiff
path: root/src/server/server.rs
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/server.rs
parentperf(subs): clippy (diff)
downloadwhirl-b3ee830a430e00dc8ab8f7a10ebaf1e7c931a0ad.tar.xz
whirl-b3ee830a430e00dc8ab8f7a10ebaf1e7c931a0ad.zip
refactor(server): clippy: module inception
Diffstat (limited to 'src/server/server.rs')
-rw-r--r--src/server/server.rs60
1 files changed, 0 insertions, 60 deletions
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>>;
-}