22 lines
668 B
Rust
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))
|
|
});
|
|
} |