feat: add status() method to Command (#1473)

This commit is contained in:
三咲雅 · Misaki Masa 2024-08-12 21:03:45 +08:00 committed by GitHub
parent a39409e699
commit 71d6b0d9f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,6 +4,7 @@ use mlua::{AnyUserData, ExternalError, IntoLuaMulti, Lua, Table, UserData, Value
use tokio::process::{ChildStderr, ChildStdin, ChildStdout};
use super::{output::Output, Child};
use crate::process::Status;
pub struct Command {
inner: tokio::process::Command,
@ -112,5 +113,11 @@ impl UserData for Command {
Err(e) => (Value::Nil, e.raw_os_error()).into_lua_multi(lua),
}
});
methods.add_async_method_mut("status", |lua, me, ()| async move {
match me.inner.status().await {
Ok(status) => (Status::new(status), Value::Nil).into_lua_multi(lua),
Err(e) => (Value::Nil, e.raw_os_error()).into_lua_multi(lua),
}
});
}
}