diff --git a/src/cmd/mod.rs b/src/cmd/mod.rs index 6c44b15a66b195ed99cfdf899c93ce0afc90e027..1637d1cd5ceab6f577813f1cc5cc6e0158bd7767 100644 --- a/src/cmd/mod.rs +++ b/src/cmd/mod.rs @@ -1,18 +1,18 @@ +#![allow(dead_code)] + pub mod acl; pub mod package; use log::error; use std::{process::abort, string::String, sync::Arc}; -#[allow(dead_code)] #[derive(Clone)] enum CmdHandler { - Simple(Arc<dyn Fn(Vec<&str>) -> bool>), - Echo(Arc<dyn Fn(Vec<&str>) -> String>), - MultiEcho(Arc<dyn Fn(Vec<&str>) -> Vec<String>>), + Simple(Arc<dyn Fn(Vec<&str>) -> bool + Send + Sync>), + Echo(Arc<dyn Fn(Vec<&str>) -> String + Send + Sync>), + MultiEcho(Arc<dyn Fn(Vec<&str>) -> Vec<String> + Send + Sync>), } -#[allow(dead_code)] #[derive(Clone)] pub struct Cmd { name: String, @@ -20,16 +20,11 @@ pub struct Cmd { handler: CmdHandler, } -unsafe impl Sync for Cmd {} -unsafe impl Send for Cmd {} - impl Cmd { - #[allow(dead_code)] pub fn matches(&self, name: &str, args: &Vec<&str>) -> bool { (self.name == *name) && (self.argc as usize == args.len()) } - #[allow(dead_code)] pub fn exec(&self, args: Vec<&str>) -> String { if args.len() != self.argc as usize { error!("Arg count doesn't match"); @@ -46,13 +41,15 @@ impl Cmd { } } - #[allow(dead_code)] pub fn get_name(&self) -> &str { &self.name } - #[allow(dead_code)] - pub fn new_simple(name: String, argc: u32, f: Arc<dyn Fn(Vec<&str>) -> bool>) -> Cmd { + pub fn new_simple( + name: String, + argc: u32, + f: Arc<dyn Fn(Vec<&str>) -> bool + Send + Sync>, + ) -> Cmd { Cmd { name: name, argc: argc, @@ -60,8 +57,11 @@ impl Cmd { } } - #[allow(dead_code)] - pub fn new_echo(name: String, argc: u32, f: Arc<dyn Fn(Vec<&str>) -> String>) -> Cmd { + pub fn new_echo( + name: String, + argc: u32, + f: Arc<dyn Fn(Vec<&str>) -> String + Send + Sync>, + ) -> Cmd { Cmd { name: name, argc: argc, @@ -69,11 +69,10 @@ impl Cmd { } } - #[allow(dead_code)] pub fn new_multi_echo( name: String, argc: u32, - f: Arc<dyn Fn(Vec<&str>) -> Vec<String>>, + f: Arc<dyn Fn(Vec<&str>) -> Vec<String> + Send + Sync>, ) -> Cmd { Cmd { name: name,