docs: comment code

This commit is contained in:
MedzikUser 2022-08-12 23:12:29 +02:00
parent 25c2f0baa3
commit 84eed33e24
No known key found for this signature in database
GPG Key ID: A5FAC1E185C112DB
8 changed files with 20 additions and 9 deletions

View File

@ -5,6 +5,7 @@ mod id;
use self::{disconnect::Disconnect, help::Help, id::ID};
use crate::plugins::prelude::*;
/// Register default commands
pub fn register_commands() -> Vec<Box<dyn Command>> {
vec![Box::new(Help), Box::new(Disconnect), Box::new(ID)]
}

View File

@ -2,13 +2,15 @@ use std::{collections::HashMap, sync::Mutex};
use lazy_static::lazy_static;
use crate::tcp::Client;
use crate::server::Client;
pub mod commands;
pub mod plugins;
pub mod tcp;
pub mod server;
lazy_static! {
/// List with all connected clients
pub static ref CLIENTS: Mutex<HashMap<usize, Client>> = Mutex::new(HashMap::new());
/// Next ID of the client to be add to [CLIENTS]
pub static ref CLIENT_NEXT: Mutex<usize> = Mutex::new(0);
}

View File

@ -1,5 +1,5 @@
use clap::Parser;
use servers::tcp::server;
use servers::server;
#[derive(Debug, Parser)]
#[clap(

View File

@ -12,5 +12,5 @@ pub mod prelude {
pub use async_trait::async_trait;
pub use self::types::*;
pub use crate::tcp::Client;
pub use crate::server::Client;
}

View File

@ -2,7 +2,7 @@ use std::any::Any;
use async_trait::async_trait;
use crate::{plugins::manager::PluginsManager, tcp::Client};
use crate::{plugins::manager::PluginsManager, server::Client};
// A main plugin trait.
#[async_trait]

View File

@ -14,14 +14,20 @@ use crate::plugins::manager::PluginsManagerType;
/// Max length of a TCP and UDP packet
pub const MAX_PACKET_LEN: usize = 65536;
/// Client struct
#[derive(Debug, Clone)]
pub struct Client {
/// ID of the client
pub id: usize,
/// Connection stream of the client
pub stream: ClientStream,
/// Custom Client Map
pub map: HashMap<String, ClientMapValue>,
/// Plugins Manager
pub plugins_manager: PluginsManagerType,
}
/// Value type of the client map entry
#[derive(Debug, Clone)]
pub enum ClientMapValue {
/// String type
@ -165,7 +171,7 @@ impl Client {
Ok(())
}
/// Close the connection
/// Close the client connection
pub fn close(&self) -> anyhow::Result<()> {
match &self.stream {
ClientStream::TCP(stream) => stream.shutdown(Shutdown::Both)?,

View File

@ -1,4 +1,5 @@
mod client;
pub mod server;
mod server;
pub use client::*;
pub use server::*;

View File

@ -7,18 +7,19 @@ use tracing::{error, info};
use crate::{
plugins::{self, manager::PluginsManagerType},
tcp::Client,
server::Client,
CLIENTS, CLIENT_NEXT,
};
pub const PLUGINS_DIR: &str = "plugins";
lazy_static! {
/// Plugin manager, where you can find loaded plugins, commands and events
pub static ref PLUGINS_MANAGER: PluginsManagerType =
plugins::loader(PLUGINS_DIR).expect("failed to load plugins");
}
/// Start server
/// Start servers
pub fn run(tcp_host: String, ws_host: String) -> anyhow::Result<()> {
info!("Loaded {} plugins", PLUGINS_MANAGER.plugins.len());
info!("Loaded {} commands", PLUGINS_MANAGER.commands.len());