#[macro_use]
pub mod types;
#[macro_use]
pub mod convert;
#[macro_use]
pub mod constructors;
#[macro_use]
pub mod select_methods;
#[macro_use]
pub mod operators;
pub mod window_case;
pub use types::{RhaiCase, RhaiExpr, RhaiIdent, RhaiSelect, RhaiWindow};
#[macro_export]
macro_rules! register_engine {
(
value: $V:ty,
select: $Select:ty,
join: $Join:ty,
cond: $Cond:ty
$(,)?
) => {
type Expr = $crate::vantage_expressions::Expression<$V>;
type Sel = $crate::rhai_engine::RhaiSelect<$V, $Select, $Join, $Cond>;
type Id = $crate::rhai_engine::RhaiIdent;
type Ex = $crate::rhai_engine::RhaiExpr<$V>;
type Win = $crate::rhai_engine::RhaiWindow<$V>;
type Cas = $crate::rhai_engine::RhaiCase<$V>;
fn __create_engine() -> rhai::Engine {
let mut engine = rhai::Engine::new();
$crate::register_types!(engine, value: $V, select: $Select, join: $Join, cond: $Cond);
$crate::register_convert!(value: $V);
$crate::register_constructors!(engine, value: $V);
$crate::register_select!(engine, value: $V, select: $Select, join: $Join, cond: $Cond);
$crate::register_operators!(engine, value: $V);
$crate::register_window_case!(engine, value: $V);
engine.set_max_expr_depths(256, 256);
engine
}
};
}