mirror of
https://github.com/lune-org/lune.git
synced 2025-05-04 10:43:57 +01:00
Migrate lune-std-stdio to async-io instead of tokio
This commit is contained in:
parent
54115430f5
commit
aeaebf4290
3 changed files with 18 additions and 12 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -1732,11 +1732,13 @@ dependencies = [
|
|||
name = "lune-std-stdio"
|
||||
version = "0.1.2"
|
||||
dependencies = [
|
||||
"async-io",
|
||||
"blocking",
|
||||
"dialoguer",
|
||||
"futures-lite",
|
||||
"lune-utils",
|
||||
"mlua",
|
||||
"mlua-luau-scheduler",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -13,13 +13,12 @@ path = "src/lib.rs"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
dialoguer = "0.11"
|
||||
mlua = { version = "0.10.3", features = ["luau", "error-send"] }
|
||||
mlua-luau-scheduler = { version = "0.0.2", path = "../mlua-luau-scheduler" }
|
||||
|
||||
tokio = { version = "1", default-features = false, features = [
|
||||
"io-std",
|
||||
"io-util",
|
||||
] }
|
||||
async-io = "2.4"
|
||||
blocking = "1.6"
|
||||
dialoguer = "0.11"
|
||||
futures-lite = "2.6"
|
||||
|
||||
lune-utils = { version = "0.1.3", path = "../lune-utils" }
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
#![allow(clippy::cargo_common_metadata)]
|
||||
|
||||
use lune_utils::fmt::{pretty_format_multi_value, ValueFormatConfig};
|
||||
use std::io::{stderr, stdin, stdout};
|
||||
|
||||
use mlua::prelude::*;
|
||||
use mlua_luau_scheduler::LuaSpawnExt;
|
||||
|
||||
use tokio::io::{stderr, stdin, stdout, AsyncReadExt, AsyncWriteExt};
|
||||
use blocking::Unblock;
|
||||
use futures_lite::prelude::*;
|
||||
|
||||
use lune_utils::TableBuilder;
|
||||
use lune_utils::{
|
||||
fmt::{pretty_format_multi_value, ValueFormatConfig},
|
||||
TableBuilder,
|
||||
};
|
||||
|
||||
mod prompt;
|
||||
mod style_and_color;
|
||||
|
@ -50,14 +55,14 @@ fn stdio_format(_: &Lua, args: LuaMultiValue) -> LuaResult<String> {
|
|||
}
|
||||
|
||||
async fn stdio_write(_: Lua, s: LuaString) -> LuaResult<()> {
|
||||
let mut stdout = stdout();
|
||||
let mut stdout = Unblock::new(stdout());
|
||||
stdout.write_all(&s.as_bytes()).await?;
|
||||
stdout.flush().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn stdio_ewrite(_: Lua, s: LuaString) -> LuaResult<()> {
|
||||
let mut stderr = stderr();
|
||||
let mut stderr = Unblock::new(stderr());
|
||||
stderr.write_all(&s.as_bytes()).await?;
|
||||
stderr.flush().await?;
|
||||
Ok(())
|
||||
|
@ -73,7 +78,7 @@ async fn stdio_ewrite(_: Lua, s: LuaString) -> LuaResult<()> {
|
|||
|
||||
async fn stdio_read_to_end(lua: Lua, (): ()) -> LuaResult<LuaString> {
|
||||
let mut input = Vec::new();
|
||||
let mut stdin = stdin();
|
||||
let mut stdin = Unblock::new(stdin());
|
||||
stdin.read_to_end(&mut input).await?;
|
||||
lua.create_string(&input)
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue