herolib_rust/src/rhai/screen.rs
Mahmoud-Emad e031b03e04
Some checks are pending
Rhai Tests / Run Rhai Tests (push) Waiting to run
feat: Convert SAL to a Rust monorepo
- Migrate SAL project from single-crate to monorepo structure
- Create independent packages for individual modules
- Improve build efficiency and testing capabilities
- Update documentation to reflect new structure
- Successfully convert the git module to an independent package.
2025-06-18 14:12:36 +03:00

23 lines
661 B
Rust

use crate::process::{kill_screen, new_screen};
use rhai::{Engine, 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))
});
}