herolib_rust/src/rhai/screen.rs
kristof 6a1e70c484
Some checks are pending
Rhai Tests / Run Rhai Tests (push) Waiting to run
...
2025-06-15 22:43:49 +02:00

22 lines
668 B
Rust

use crate::process::{new_screen, kill_screen};
use rhai::{Engine, Module, EvalAltResult};
fn screen_error_to_rhai_error<T>(result: anyhow::Result<T>) -> Result<T, Box<EvalAltResult>> {
result.map_err(|e| {
Box::new(EvalAltResult::ErrorRuntime(
format!("Screen error: {}", e).into(),
rhai::Position::NONE,
))
})
}
#[allow(dead_code)]
pub fn register(engine: &mut Engine) {
engine.register_fn("screen_new", |name: &str, cmd: &str| {
screen_error_to_rhai_error(new_screen(name, cmd))
});
engine.register_fn("screen_kill", |name: &str| {
screen_error_to_rhai_error(kill_screen(name))
});
}