artis/
lib.rs

1mod artis;
2mod artis_tx;
3mod decode;
4mod error;
5mod into_raw;
6mod types;
7
8pub mod driver;
9pub mod migrator;
10
11#[cfg(feature = "log")]
12pub mod unix;
13
14pub use artis::{Artis, ArtisExecutor};
15pub use artis_tx::{ArtisTx, ArtisTxExecutor};
16pub use driver::Value;
17pub use error::Error;
18pub use into_raw::{IntoLimit, IntoRaw, IntoTable, Raw};
19pub use types::{BoxFuture, ExecResult, IntoArtis, IntoChunk, RawType};
20
21#[cfg(feature = "derive")]
22pub use artis_derive::Artis;
23
24#[cfg_attr(feature = "derive", macro_export)]
25macro_rules! meta {
26    ($($v:tt),* $(,)?) => {
27        vec![$($v::migrator(),)*]
28    };
29}
30
31pub type Result<T> = std::result::Result<T, Error>;
32
33#[macro_export]
34macro_rules! raw {
35    ($($arg:tt)*) => {
36       format!($($arg)*)
37    }
38}
39
40#[macro_export]
41macro_rules! map {
42    {$($k:tt: $v:expr),* $(,)?} => {
43        {
44        let mut map = std::collections::HashMap::new();
45        $(map.insert($k, $v);)*
46        map
47        }
48    };
49}
50
51#[macro_export]
52macro_rules! rbv {
53    ($v:expr) => {
54        rbs::value!($v)
55    };
56    ($($k:tt: $v:expr),* $(,)?) => {
57        rbs::Value::Map(rbs::value_map!($($k:$v ,)*))
58    };
59
60    ($tt:expr,$($k:tt: $v:expr),* $(,)?) => {
61        {
62            let v = rbs::value!($tt);
63            let extend = rbs::value_map!($($k:$v ,)*);
64            if let rbs::Value::Map(mut m) = v {
65                extend.into_iter().for_each(|(k, v)| {m.insert(k, v);});
66                rbs::Value::Map(m)
67            } else {
68               rbs::Value::Map(rbs::value_map!($($k:$v ,)*))
69            }
70        }
71    }
72}