33 lines
974 B
Rust
33 lines
974 B
Rust
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<Server, Box<EvalAltResult>> {
|
|
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<Array, Box<EvalAltResult>> {
|
|
let servers = client
|
|
.get_servers()
|
|
.map_err(|e| Into::<Box<EvalAltResult>>::into(e.to_string()))?;
|
|
Ok(servers.into_iter().map(Dynamic::from).collect())
|
|
}
|
|
|
|
} |