Browse Source

feat: add DirectorySeparator property to ILuaFileSystem

Akeit0 7 months ago
parent
commit
060ee0fc6a
2 changed files with 5 additions and 13 deletions
  1. 4 12
      src/Lua/IO/ILuaFileSystem.cs
  2. 1 1
      src/Lua/Standard/ModuleLibrary.cs

+ 4 - 12
src/Lua/IO/ILuaFileSystem.cs

@@ -9,6 +9,7 @@ public interface ILuaFileSystem
     public IStream? Open(string path, LuaFileOpenMode mode, bool throwError);
     public void Rename(string oldName, string newName);
     public void Remove(string path);
+    public string DirectorySeparator { get; }
     public string GetTempFileName();
 }
 
@@ -33,18 +34,6 @@ public interface IStream : IDisposable
     public long Position { get; set; }
 }
 
-public interface IStreamReader : IDisposable
-{
-}
-
-public interface IStreamWriter : IDisposable
-{
-    public ValueTask WriteAsync(ReadOnlyMemory<char> buffer, CancellationToken cancellationToken);
-    public ValueTask FlushAsync(CancellationToken cancellationToken);
-
-    public void SetVBuf(string mode, int size);
-}
-
 public sealed class FileSystem : ILuaFileSystem
 {
     public static readonly FileSystem Instance = new();
@@ -113,6 +102,9 @@ public sealed class FileSystem : ILuaFileSystem
         File.Delete(path);
     }
 
+    static readonly string directorySeparator = Path.DirectorySeparatorChar.ToString();
+    public string DirectorySeparator => directorySeparator;
+
     public string GetTempFileName()
     {
         return Path.GetTempFileName();

+ 1 - 1
src/Lua/Standard/ModuleLibrary.cs

@@ -130,7 +130,7 @@ public sealed class ModuleLibrary
     public async ValueTask<int> SearcherLua(LuaFunctionExecutionContext context, CancellationToken cancellationToken)
     {
         var name = context.GetArgument<string>(0);
-        var fileName = await FindFile(context.Access, name, "path", Path.DirectorySeparatorChar.ToString());
+        var fileName = await FindFile(context.Access, name, "path", context.State.FileSystem.DirectorySeparator);
         if (fileName == null)
         {
             return (context.Return(LuaValue.Nil));