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