macro_rules! impl_toluamulti {
    ($t:ty as $as:ty: |$self:ident| $map:expr) => { ... };
}
Expand description

Helper macro to impl ToLuaMulti for types which can convert to another type implemented ToLuaMulti easily

use std::process::{Command, ExitStatus};

struct CmdExitStatus(ExitStatus);

ezlua::impl_toluamulti! {
    CmdExitStatus as (bool, Option<i32>): |self| (self.0.success(), self.0.code())
}

lua.global()
    .set_closure("execute", |cmd: &str, args: MultiRet<&str>| {
        Command::new(cmd).args(args.0).status().map(CmdExitStatus)
    })?;
lua.do_string("print(execute('ls', '-l'))", None)?; // true 0