chaindev/
lib.rs

1//!
2//! # ChainDEV
3//!
4//! Blockchain cluster management,
5//! supports both single-machine multi-process mode
6//! and multi-machine distributed mode.
7//!
8
9#![deny(warnings)]
10// #![warn(missing_docs)]
11
12pub mod common;
13
14#[cfg(feature = "beacon_based")]
15pub mod beacon_based;
16
17#[cfg(feature = "tendermint_based")]
18pub mod tendermint_based;
19
20/////////////////////////////////////////////////////////////////////
21
22pub use common::*;
23
24#[cfg(feature = "tendermint_based")]
25pub use tendermint_based::dev as tendermint_dev;
26
27#[cfg(feature = "tendermint_based")]
28pub use tendermint_based::ddev as tendermint_ddev;
29
30#[cfg(feature = "beacon_based")]
31pub use beacon_based::dev as beacon_dev;
32
33#[cfg(feature = "beacon_based")]
34pub use beacon_based::ddev as beacon_ddev;
35
36/////////////////////////////////////////////////////////////////////
37
38#[macro_export]
39macro_rules! check_errlist {
40    ($errlist: expr) => {{
41        if $errlist.is_empty() {
42            Ok(())
43        } else {
44            Err(eg!($errlist
45                .iter()
46                .map(|e| e.to_string())
47                .collect::<Vec<_>>()
48                .join("\n")))
49        }
50    }};
51    // useful fo some middle returns
52    (@$errlist: expr) => {{
53        if !$errlist.is_empty() {
54            return Err(eg!($errlist
55                .iter()
56                .map(|e| e.to_string())
57                .collect::<Vec<_>>()
58                .join("\n")));
59        }
60    }};
61}
62
63/////////////////////////////////////////////////////////////////////
64/////////////////////////////////////////////////////////////////////