pub mod abs; pub mod aggregate; pub mod basic_math; pub mod random; pub mod round; pub mod trig; use crate::shared::models::UserSession; use crate::shared::state::AppState; use log::debug; use rhai::Engine; use std::sync::Arc; pub fn register_math_functions(state: &Arc, user: UserSession, engine: &mut Engine) { abs::abs_keyword(&state, user.clone(), engine); round::round_keyword(&state, user.clone(), engine); basic_math::int_keyword(&state, user.clone(), engine); basic_math::floor_keyword(&state, user.clone(), engine); basic_math::ceil_keyword(&state, user.clone(), engine); basic_math::max_keyword(&state, user.clone(), engine); basic_math::min_keyword(&state, user.clone(), engine); basic_math::mod_keyword(&state, user.clone(), engine); basic_math::sgn_keyword(&state, user.clone(), engine); basic_math::sqrt_keyword(&state, user.clone(), engine); basic_math::pow_keyword(&state, user.clone(), engine); random::random_keyword(&state, user.clone(), engine); trig::sin_keyword(&state, user.clone(), engine); trig::cos_keyword(&state, user.clone(), engine); trig::tan_keyword(&state, user.clone(), engine); trig::log_keyword(&state, user.clone(), engine); trig::exp_keyword(&state, user.clone(), engine); trig::pi_keyword(&state, user.clone(), engine); aggregate::sum_keyword(&state, user.clone(), engine); aggregate::avg_keyword(&state, user, engine); debug!("Registered all math functions"); }