From b68851295e2adbd2cb68c667848e593fc4413b73 Mon Sep 17 00:00:00 2001 From: librelois <elois@ifee.fr> Date: Sat, 13 Oct 2018 20:19:50 +0200 Subject: [PATCH] [ref] create macro durs_core_server --- core/lib.rs | 23 ++++++++++++++++++----- src/main.rs | 24 ++++++------------------ 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/core/lib.rs b/core/lib.rs index 06395b5a..423c836a 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -69,12 +69,25 @@ use threadpool::ThreadPool; /// Number of thread in plugins ThreadPool pub static THREAD_POOL_SIZE: &'static usize = &2; +#[macro_export] +macro_rules! durs_core_server { + ( $closure_inject_cli:expr, $closure_plug:expr ) => {{ + duniter_core::main( + env!("CARGO_PKG_NAME"), + env!("CARGO_PKG_VERSION"), + &DursOpt::clap(), + $closure_inject_cli, + $closure_plug, + ); + }}; +} + #[macro_export] macro_rules! durs_inject_cli { - ( $( $x:ty ),* ) => { + ( $( $Module:ty ),* ) => { { |core| { - $(core.inject_cli_subcommand::<$x>();)* + $(core.inject_cli_subcommand::<$Module>();)* } } }; @@ -82,11 +95,11 @@ macro_rules! durs_inject_cli { #[macro_export] macro_rules! durs_plug { - ( $x:ty, $( $y:ty ),* ) => { + ( [ $( $NetworkModule:ty ),* ], [ $( $Module:ty ),* ] ) => { { |core| { - $(core.plug::<$y>();)* - core.plug_network::<$x>(); + $(core.plug::<$Module>();)* + $(core.plug_network::<$NetworkModule>();)* } } }; diff --git a/src/main.rs b/src/main.rs index 1e602d99..0ef666e3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -48,32 +48,20 @@ use structopt::StructOpt; #[cfg(unix)] #[cfg(not(target_arch = "arm"))] fn main() { - duniter_core::main( - env!("CARGO_PKG_NAME"), - env!("CARGO_PKG_VERSION"), - &DursOpt::clap(), - durs_inject_cli![WS2PModule, TuiModule], - durs_plug![WS2PModule, TuiModule], + durs_core_server!( + durs_inject_cli![WS2PModule, TuiModule /*,DasaModule*/], + durs_plug!([WS2PModule], [TuiModule /*,DasaModule*/]) ); } #[cfg(unix)] #[cfg(target_arch = "arm")] fn main() { - duniter_core::main( - env!("CARGO_PKG_NAME"), - env!("CARGO_PKG_VERSION"), - &DursOpt::clap(), + durs_core_server!( durs_inject_cli![WS2PModule, TuiModule], - durs_plug![WS2PModule, TuiModule], + durs_plug!([WS2PModule], [TuiModule]) ); } #[cfg(windows)] fn main() { - duniter_core::main( - env!("CARGO_PKG_NAME"), - env!("CARGO_PKG_VERSION"), - &DursOpt::clap(), - durs_inject_cli![WS2PModule], - durs_plug![WS2PModule], - ); + durs_core_server!(durs_inject_cli![WS2PModule], durs_plug!([WS2PModule], [])); } -- GitLab