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}