diff --git a/core/lib.rs b/core/lib.rs index 06395b5ac90abbdd996ccba6629562c388e02eec..423c836ad6675992d0bacea035d589b8dc28fa82 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 1e602d99eac8db95f9101715892e5918e72b5f4c..0ef666e3306801eb8c037a5ad749443cbc36cf6e 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], [])); }