use rhai::Engine;

pub mod absorb;
pub mod arrays;
pub mod columns;
pub mod conf;
pub mod datetime;
pub mod docs;
pub mod emit;
pub mod encoding;
pub mod environment;
pub mod file_ops;
pub mod hashing;
pub mod maps;
pub mod math;
pub mod micro_search;
pub mod network;
pub mod normalize;
pub mod process;
pub mod random;
pub mod safety;
pub mod span;
pub mod state;
pub mod strings;
pub mod tracking;
pub mod window;

pub fn register_all_functions(engine: &mut Engine) {
    absorb::register_functions(engine);
    arrays::register_functions(engine);
    strings::register_functions(engine);
    micro_search::register_functions(engine);
    tracking::register_functions(engine);
    columns::register_functions(engine);
    maps::register_functions(engine);
    math::register_functions(engine);
    network::register_functions(engine);
    normalize::register_functions(engine);
    process::register_functions(engine);
    random::register_functions(engine);
    datetime::register_functions(engine);
    window::register_functions(engine);
    safety::register_functions(engine);
    conf::register_functions(engine);
    encoding::register_functions(engine);
    environment::register_functions(engine);
    emit::register_functions(engine);
    file_ops::register_functions(engine);
    hashing::register_functions(engine);
    span::register_functions(engine);
    state::register(engine);
}
