From 0a3b57697dc0a56ac751413729e82e10f9a91b98 Mon Sep 17 00:00:00 2001 From: Filip Tibell Date: Thu, 24 Apr 2025 21:47:40 +0200 Subject: [PATCH] Migrate lune-std-fs to use async-fs instead of tokio --- Cargo.lock | 3 ++- crates/lune-std-fs/Cargo.toml | 4 ++-- crates/lune-std-fs/src/copy.rs | 9 +++++---- crates/lune-std-fs/src/lib.rs | 5 +++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 370203b..80b453c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1768,11 +1768,12 @@ dependencies = [ name = "lune-std-fs" version = "0.1.2" dependencies = [ + "async-fs", "bstr", + "futures-lite", "lune-std-datetime", "lune-utils", "mlua", - "tokio", ] [[package]] diff --git a/crates/lune-std-fs/Cargo.toml b/crates/lune-std-fs/Cargo.toml index 23eb468..f639dd8 100644 --- a/crates/lune-std-fs/Cargo.toml +++ b/crates/lune-std-fs/Cargo.toml @@ -15,9 +15,9 @@ workspace = true [dependencies] mlua = { version = "0.10.3", features = ["luau"] } +async-fs = "2.1" bstr = "1.9" - -tokio = { version = "1", default-features = false, features = ["fs"] } +futures-lite = "2.6" lune-utils = { version = "0.1.3", path = "../lune-utils" } lune-std-datetime = { version = "0.1.2", path = "../lune-std-datetime" } diff --git a/crates/lune-std-fs/src/copy.rs b/crates/lune-std-fs/src/copy.rs index 4fa3287..caa8ee2 100644 --- a/crates/lune-std-fs/src/copy.rs +++ b/crates/lune-std-fs/src/copy.rs @@ -2,8 +2,9 @@ use std::collections::VecDeque; use std::io::ErrorKind; use std::path::{Path, PathBuf}; +use async_fs as fs; +use futures_lite::prelude::*; use mlua::prelude::*; -use tokio::fs; use super::options::FsWriteOptions; @@ -24,8 +25,8 @@ async fn get_contents_at(root: PathBuf, _: FsWriteOptions) -> LuaResult LuaResult LuaResult { async fn fs_read_dir(_: Lua, path: String) -> LuaResult> { let mut dir_strings = Vec::new(); let mut dir = fs::read_dir(&path).await.into_lua_err()?; - while let Some(dir_entry) = dir.next_entry().await.into_lua_err()? { + while let Some(dir_entry) = dir.try_next().await.into_lua_err()? { if let Some(dir_name_str) = dir_entry.file_name().to_str() { dir_strings.push(dir_name_str.to_owned()); } else {