Use blocking io for print and warn globals

This commit is contained in:
Filip Tibell 2024-01-14 09:38:56 +01:00
parent 6f8b1e4896
commit 9c27057bf3
No known key found for this signature in database
2 changed files with 10 additions and 26 deletions

View file

@ -1,23 +1,15 @@
use std::io::Write as _;
use mlua::prelude::*;
use tokio::{
io::{self, AsyncWriteExt},
task,
};
use crate::lune::util::formatting::pretty_format_multi_value;
pub fn create(lua: &Lua) -> LuaResult<impl IntoLua<'_>> {
lua.create_function(|_, args: LuaMultiValue| {
let formatted = format!("{}\n", pretty_format_multi_value(&args)?);
task::spawn(async move {
let _res = async move {
let mut stdout = io::stdout();
stdout.write_all(formatted.as_bytes()).await?;
stdout.flush().await?;
Ok::<_, LuaError>(())
};
// FUTURE: Send any error back to scheduler and emit it properly
});
let mut stdout = std::io::stdout();
stdout.write_all(formatted.as_bytes())?;
stdout.flush()?;
Ok(())
})
}

View file

@ -1,8 +1,6 @@
use std::io::Write as _;
use mlua::prelude::*;
use tokio::{
io::{self, AsyncWriteExt},
task,
};
use crate::lune::util::formatting::{format_label, pretty_format_multi_value};
@ -13,15 +11,9 @@ pub fn create(lua: &Lua) -> LuaResult<impl IntoLua<'_>> {
format_label("warn"),
pretty_format_multi_value(&args)?
);
task::spawn(async move {
let _res = async move {
let mut stdout = io::stderr();
stdout.write_all(formatted.as_bytes()).await?;
stdout.flush().await?;
Ok::<_, LuaError>(())
};
// FUTURE: Send any error back to scheduler and emit it properly
});
let mut stderr = std::io::stderr();
stderr.write_all(formatted.as_bytes())?;
stderr.flush()?;
Ok(())
})
}