use crate::api::{models::Server, Client}; use prettytable::{row, Table}; use rhai::{plugin::*, Array, Dynamic}; pub fn register(engine: &mut Engine) { let server_module = exported_module!(server_api); engine.register_global_module(server_module.into()); } #[export_module] pub mod server_api { use super::*; use rhai::EvalAltResult; #[rhai_fn(name = "get_server", return_raw)] pub fn get_server( client: &mut Client, server_number: i64, ) -> Result> { client .get_server(server_number as i32) .map_err(|e| e.to_string().into()) } #[rhai_fn(name = "get_servers", return_raw)] pub fn get_servers(client: &mut Client) -> Result> { let servers = client .get_servers() .map_err(|e| Into::>::into(e.to_string()))?; Ok(servers.into_iter().map(Dynamic::from).collect()) } }