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