chore: refactor module structure

This commit is contained in:
Michel de Graaf
2025-07-31 20:33:30 +02:00
parent 28ecda68a6
commit 4302d74847
23 changed files with 96 additions and 52 deletions
+1
View File
@@ -17,6 +17,7 @@ use std::{
time::{Duration, Instant}, time::{Duration, Instant},
}; };
use crate::{debug, error, info, trace, warn};
const MAX_THREADS: usize = 100; const MAX_THREADS: usize = 100;
pub enum ClientOperation { pub enum ClientOperation {
ConnectToPeer(Peer), ConnectToPeer(Peer),
+2
View File
@@ -1,6 +1,8 @@
use crate::message::{handlers::Handlers, Message}; use crate::message::{handlers::Handlers, Message};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::{debug, error, info, trace, warn};
/// Add `<Op>` to make it generic over any operation type. /// Add `<Op>` to make it generic over any operation type.
pub struct MessageDispatcher<Op> { pub struct MessageDispatcher<Op> {
sender: Sender<Op>, sender: Sender<Op>,
+25
View File
@@ -0,0 +1,25 @@
// Core modules
pub mod client;
pub mod dispatcher;
pub mod message;
pub mod peer;
pub mod server;
pub mod types;
#[macro_use]
pub mod utils;
// Prelude module for commonly used items
pub mod prelude {
pub use crate::types::{
DownloadResult, DownloadStatus, File, FileSearchResult, Transfer,
};
pub use crate::{debug, error, info, trace, warn};
pub use crate::{Client, PeerAddress};
}
// Re-export commonly used types
pub use client::Client;
pub use server::PeerAddress;
pub use types::{
DownloadResult, DownloadStatus, File, FileSearchResult, Transfer,
};
+3 -17
View File
@@ -1,24 +1,10 @@
#[macro_use] fn main() {
mod utils; use soulseek_download::{Client, PeerAddress};
mod client;
mod dispatcher;
mod message;
mod peer;
mod server;
mod types;
use client::Client;
use server::PeerAddress;
use std::time::Duration; use std::time::Duration;
// PeerAddress::new(String::from("server.slsknet.org"), 2416),
fn main() {
let mut client = Client::new( let mut client = Client::new(
// ServerAddress::new(String::from("localhost"), 2416),
// PeerAddress::new(String::from("127.0.0.1"), 2242),
PeerAddress::new(String::from("server.slsknet.org"), 2242), PeerAddress::new(String::from("server.slsknet.org"), 2242),
String::from("insane_in_the_brain3"), String::from("insane_in_the_brain3"),
// String::from("invalid"),
String::from("13375137"), String::from("13375137"),
); );
@@ -34,7 +20,7 @@ fn main() {
} }
} }
Err(e) => { Err(e) => {
error!("Failed to login: {}", e); eprintln!("Failed to login: {}", e);
} }
} }
} }
+6 -3
View File
@@ -1,10 +1,13 @@
pub use crate::{debug, error, info, trace, warn};
pub mod handlers; pub mod handlers;
pub mod message_reader; mod message_reader;
pub mod peer; pub mod peer;
pub mod server; pub mod server;
pub use handlers::*; // Re-export commonly used items
pub use message_reader::*; pub use handlers::{MessageHandler, Handlers};
pub use message_reader::MessageReader;
use std::str; use std::str;
+9 -5
View File
@@ -1,6 +1,10 @@
pub mod file_search_response; mod file_search_response;
pub mod get_share_file_list; mod get_share_file_list;
pub mod transfer_request; mod transfer_request;
pub mod upload_failed; mod upload_failed;
pub use self::file_search_response::*; // Re-export handlers
pub use file_search_response::FileSearchResponse;
pub use get_share_file_list::GetShareFileList;
pub use transfer_request::TransferRequest;
pub use upload_failed::UploadFailedHandler;
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use crate::{ use crate::{
message::{Message, MessageHandler}, message::{Message, MessageHandler},
peer::PeerOperation, peer::PeerOperation,
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use crate::message::{Message, MessageHandler}; use crate::message::{Message, MessageHandler};
use crate::peer::{ConnectionType, Peer}; use crate::peer::{ConnectionType, Peer};
use crate::server::ServerOperation; use crate::server::ServerOperation;
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use crate::{ use crate::{
message::{Message, MessageHandler}, message::{Message, MessageHandler},
server::ServerOperation, server::ServerOperation,
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::{message::handlers::MessageHandler, use crate::{message::handlers::MessageHandler,
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::{message::Message, server::ServerOperation}; use crate::{message::Message, server::ServerOperation};
+1 -1
View File
@@ -1,4 +1,4 @@
use crate::{message::Message, peer::ConnectionType, types::Transfer, utils::md5}; use crate::{message::Message, peer::ConnectionType, types::Transfer, utils::md5::md5};
pub struct MessageFactory; pub struct MessageFactory;
impl MessageFactory { impl MessageFactory {
+1
View File
@@ -2,6 +2,7 @@ use crate::{
message::{Message, MessageHandler}, message::{Message, MessageHandler},
server::{ServerOperation, UserMessage}, server::{ServerOperation, UserMessage},
}; };
use crate::{debug, error, info, trace, warn};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
pub struct MessageUser; pub struct MessageUser;
+23 -16
View File
@@ -1,18 +1,25 @@
pub mod connect_to_peer; mod connect_to_peer;
pub mod excluded_search_phrases; mod excluded_search_phrases;
pub mod file_search; mod file_search;
pub mod login; mod login;
pub mod message_factory; mod message_factory;
pub mod message_user; mod message_user;
pub mod parent_min_speed; mod parent_min_speed;
pub mod parent_speed_ratio; mod parent_speed_ratio;
pub mod privileged_users; mod privileged_users;
pub mod room_list; mod room_list;
pub mod wish_list_interval; mod wish_list_interval;
pub use self::{ // Re-export handlers
connect_to_peer::*, excluded_search_phrases::*, file_search::*, login::*, message_factory::*, pub use connect_to_peer::ConnectToPeerHandler;
message_user::*, parent_min_speed::*, parent_speed_ratio::*, privileged_users::*, room_list::*, pub use excluded_search_phrases::ExcludedSearchPhrasesHandler;
wish_list_interval::*, pub use file_search::FileSearchHandler;
}; pub use login::LoginHandler;
pub use message_factory::MessageFactory;
pub use message_user::MessageUser;
pub use parent_min_speed::ParentMinSpeedHandler;
pub use parent_speed_ratio::ParentSpeedRatioHandler;
pub use privileged_users::PrivilegedUsersHandler;
pub use room_list::RoomListHandler;
pub use wish_list_interval::WishListIntervalHandler;
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::{ use crate::{
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::{ use crate::{
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::{ use crate::{
+1
View File
@@ -1,3 +1,4 @@
use crate::{debug, error, info, trace, warn};
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::{ use crate::{
+3 -3
View File
@@ -1,7 +1,5 @@
use crate::dispatcher::MessageDispatcher; use crate::dispatcher::MessageDispatcher;
use crate::message::peer::get_share_file_list::GetShareFileList; use crate::message::peer::{GetShareFileList, TransferRequest, UploadFailedHandler};
use crate::message::peer::transfer_request::TransferRequest;
use crate::message::peer::upload_failed::UploadFailedHandler;
use crate::message::peer::FileSearchResponse; use crate::message::peer::FileSearchResponse;
use crate::message::server::MessageFactory; use crate::message::server::MessageFactory;
use crate::message::{Handlers, Message, MessageReader, MessageType}; use crate::message::{Handlers, Message, MessageReader, MessageType};
@@ -18,6 +16,8 @@ use std::net::TcpStream;
use std::net::ToSocketAddrs; use std::net::ToSocketAddrs;
use std::time::Duration; use std::time::Duration;
use crate::{debug, error, info, trace, warn};
#[allow(dead_code)] #[allow(dead_code)]
pub struct DefaultPeer { pub struct DefaultPeer {
peer: Peer, peer: Peer,
+2
View File
@@ -4,6 +4,8 @@ use std::{io, net::TcpListener};
use crate::message::MessageReader; use crate::message::MessageReader;
use crate::server::ServerOperation; use crate::server::ServerOperation;
use crate::{debug, error, info, trace, warn};
pub struct Listen {} pub struct Listen {}
impl Listen { impl Listen {
+5 -4
View File
@@ -1,9 +1,10 @@
pub mod default_peer; mod default_peer;
pub use default_peer::*; mod download_peer;
pub mod download_peer;
pub mod listen; pub mod listen;
// Re-export commonly used items
pub use default_peer::{DefaultPeer, PeerOperation};
use crate::message::Message; use crate::message::Message;
use core::fmt; use core::fmt;
use std::str::FromStr; use std::str::FromStr;
+3 -1
View File
@@ -14,7 +14,7 @@ use crate::message::server::WishListIntervalHandler;
use crate::message::Handlers; use crate::message::Handlers;
use crate::message::Message; use crate::message::Message;
use crate::message::MessageReader; use crate::message::MessageReader;
use crate::peer::listen::Listen; use crate::peer::{listen::Listen};
use crate::peer::ConnectionType; use crate::peer::ConnectionType;
use crate::peer::Peer; use crate::peer::Peer;
@@ -26,6 +26,8 @@ use std::sync::{Arc, Barrier, Mutex};
use std::thread::{self}; use std::thread::{self};
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
use crate::{debug, error, info, trace, warn};
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct PeerAddress { pub struct PeerAddress {
host: String, host: String,
+2 -1
View File
@@ -4,4 +4,5 @@ pub mod md5;
pub mod thread_pool; pub mod thread_pool;
pub mod zlib; pub mod zlib;
pub use md5::*; // Re-export commonly used items
pub use md5::md5;