Skip to content

Commit f023db3

Browse files
authored
Merge pull request #169 from nuskey8/revert-bytes
revert allows bytes
2 parents 8ea87b5 + 2626e45 commit f023db3

27 files changed

+244
-965
lines changed

src/Lua/IO/BinaryData.cs

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/Lua/IO/BinaryLuaStream.cs

Lines changed: 0 additions & 88 deletions
This file was deleted.

src/Lua/IO/CompositeLoaderFileSystem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public bool IsReadable(string path)
4040
return false;
4141
}
4242

43-
public async ValueTask<ILuaStream> Open(string path, LuaFileMode mode, CancellationToken cancellationToken)
43+
public async ValueTask<ILuaStream> Open(string path, LuaFileOpenMode mode, CancellationToken cancellationToken)
4444
{
4545
if (cached != null)
4646
{

src/Lua/IO/FileSystem.cs

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ public static (FileMode, FileAccess access) GetFileMode(LuaFileOpenMode luaFileO
99
LuaFileOpenMode.Read => (FileMode.Open, FileAccess.Read),
1010
LuaFileOpenMode.Write => (FileMode.Create, FileAccess.Write),
1111
LuaFileOpenMode.Append => (FileMode.Append, FileAccess.Write),
12-
LuaFileOpenMode.ReadWriteOpen => (FileMode.Open, FileAccess.ReadWrite),
13-
LuaFileOpenMode.ReadWriteCreate => (FileMode.Truncate, FileAccess.ReadWrite),
14-
LuaFileOpenMode.ReadAppend => (FileMode.Append, FileAccess.ReadWrite),
12+
LuaFileOpenMode.ReadUpdate => (FileMode.Open, FileAccess.ReadWrite),
13+
LuaFileOpenMode.WriteUpdate => (FileMode.Truncate, FileAccess.ReadWrite),
14+
LuaFileOpenMode.AppendUpdate => (FileMode.Append, FileAccess.ReadWrite),
1515
_ => throw new ArgumentOutOfRangeException(nameof(luaFileOpenMode), luaFileOpenMode, null)
1616
};
1717
}
@@ -22,12 +22,12 @@ public bool IsReadable(string path)
2222
}
2323

2424

25-
ILuaStream Open(string path, LuaFileOpenMode openMode, LuaFileContentType contentType)
25+
public ValueTask<ILuaStream> Open(string path, LuaFileOpenMode openMode, CancellationToken cancellationToken)
2626
{
2727
var (mode, access) = GetFileMode(openMode);
2828
Stream stream;
2929

30-
if (openMode == LuaFileOpenMode.ReadAppend)
30+
if (openMode == LuaFileOpenMode.AppendUpdate)
3131
{
3232
stream = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete);
3333
}
@@ -36,32 +36,18 @@ ILuaStream Open(string path, LuaFileOpenMode openMode, LuaFileContentType conten
3636
stream = File.Open(path, mode, access, FileShare.ReadWrite | FileShare.Delete);
3737
}
3838

39-
var fileMode = LuaFileModeExtensions.GetMode(openMode, contentType);
40-
ILuaStream wrapper = contentType == LuaFileContentType.Binary
41-
? new BinaryLuaStream(fileMode, stream)
42-
: new TextLuaStream(fileMode, stream);
39+
ILuaStream wrapper =
40+
new TextLuaStream(openMode, stream);
4341

44-
if (openMode == LuaFileOpenMode.ReadAppend)
42+
if (openMode == LuaFileOpenMode.AppendUpdate)
4543
{
4644
wrapper.Seek(0, SeekOrigin.End);
4745
}
4846

49-
return wrapper;
47+
return new(wrapper);
5048
}
5149

52-
public ValueTask<ILuaStream> Open(string path, LuaFileMode mode, CancellationToken cancellationToken)
53-
{
54-
if (mode is LuaFileMode.Load)
55-
{
56-
return new ( new LuaChunkStream(File.OpenRead(path)));
57-
}
58-
59-
var openMode = mode.GetOpenMode();
60-
var contentType = mode.GetContentType();
61-
return new(Open(path, openMode, contentType));
62-
}
63-
64-
public ValueTask Rename(string oldName, string newName,CancellationToken cancellationToken)
50+
public ValueTask Rename(string oldName, string newName, CancellationToken cancellationToken)
6551
{
6652
if (oldName == newName) return default;
6753
if (File.Exists(newName)) File.Delete(newName);
@@ -70,7 +56,7 @@ public ValueTask Rename(string oldName, string newName,CancellationToken cancell
7056
return default;
7157
}
7258

73-
public ValueTask Remove(string path,CancellationToken cancellationToken)
59+
public ValueTask Remove(string path, CancellationToken cancellationToken)
7460
{
7561
File.Delete(path);
7662
return default;
@@ -86,7 +72,7 @@ public string GetTempFileName()
8672

8773
public ValueTask<ILuaStream> OpenTempFileStream(CancellationToken cancellationToken)
8874
{
89-
return new( new TextLuaStream(LuaFileMode.ReadUpdateText, File.Open(Path.GetTempFileName(), FileMode.Open, FileAccess.ReadWrite)));
75+
return new(new TextLuaStream(LuaFileOpenMode.WriteUpdate, File.Open(Path.GetTempFileName(), FileMode.Open, FileAccess.ReadWrite)));
9076
}
9177
}
9278
}

src/Lua/IO/ILuaFileSystem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
public interface ILuaFileSystem
44
{
55
public bool IsReadable(string path);
6-
public ValueTask<ILuaStream> Open(string path, LuaFileMode mode, CancellationToken cancellationToken);
6+
public ValueTask<ILuaStream> Open(string path, LuaFileOpenMode mode, CancellationToken cancellationToken);
77
public ValueTask Rename(string oldName, string newName, CancellationToken cancellationToken);
88
public ValueTask Remove(string path, CancellationToken cancellationToken);
99
public string DirectorySeparator => "/";

src/Lua/IO/ILuaStream.cs

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
{
33
public interface ILuaStream : IDisposable
44
{
5-
public LuaFileMode Mode { get; }
5+
public LuaFileOpenMode Mode { get; }
66

7-
public ValueTask<LuaFileContent> ReadAllAsync(CancellationToken cancellationToken)
7+
public ValueTask<string> ReadAllAsync(CancellationToken cancellationToken)
88
{
99
Mode.ThrowIfNotReadable();
1010

@@ -16,7 +16,6 @@ public ValueTask<LuaFileContent> ReadAllAsync(CancellationToken cancellationToke
1616
{
1717
Mode.ThrowIfNotReadable();
1818

19-
Mode.ThrowIfNotText();
2019

2120
// Default implementation using ReadStringAsync
2221
throw new NotImplementedException($"ReadLineAsync must be implemented by {GetType().Name}");
@@ -26,26 +25,19 @@ public ValueTask<LuaFileContent> ReadAllAsync(CancellationToken cancellationToke
2625
{
2726
Mode.ThrowIfNotReadable();
2827

29-
Mode.ThrowIfNotText();
3028
// Default implementation using ReadAllAsync
3129
throw new NotImplementedException($"ReadStringAsync must be implemented by {GetType().Name}");
3230
}
3331

34-
public ValueTask WriteAsync(LuaFileContent content, CancellationToken cancellationToken)
32+
public ValueTask WriteAsync(ReadOnlyMemory<char> content, CancellationToken cancellationToken)
3533
{
3634
Mode.ThrowIfNotWritable();
37-
if (content.Type == LuaFileContentType.Binary)
38-
{
39-
Mode.ThrowIfNotBinary();
40-
}
41-
else
42-
{
43-
Mode.ThrowIfNotText();
44-
}
4535

4636
throw new NotImplementedException($"WriteAsync must be implemented by {GetType().Name}");
4737
}
4838

39+
public ValueTask WriteAsync(string content, CancellationToken cancellationToken) => WriteAsync(content.AsMemory(), cancellationToken);
40+
4941
public ValueTask FlushAsync(CancellationToken cancellationToken)
5042
{
5143
// Default implementation does nothing (no buffering)
@@ -62,24 +54,19 @@ public long Seek(long offset, SeekOrigin origin)
6254
throw new NotSupportedException($"Seek is not supported by {GetType().Name}");
6355
}
6456

65-
public static ILuaStream CreateStreamWrapper(Stream stream, LuaFileOpenMode openMode, LuaFileContentType contentType = LuaFileContentType.Text)
57+
public static ILuaStream CreateStreamWrapper(Stream stream, LuaFileOpenMode openMode)
6658
{
67-
var mode = LuaFileModeExtensions.GetMode(openMode, contentType);
68-
return contentType == LuaFileContentType.Binary
69-
? new BinaryLuaStream(mode, stream)
70-
: new TextLuaStream(mode, stream);
59+
return new TextLuaStream(openMode, stream);
7160
}
72-
73-
public static ILuaStream CreateFromFileContent(LuaFileContent content)
61+
62+
public static ILuaStream CreateFromFileString(string content)
63+
{
64+
return new StringStream(content);
65+
}
66+
67+
public static ILuaStream CreateFromMemory(ReadOnlyMemory<char> content)
7468
{
75-
if (content.Type == LuaFileContentType.Binary)
76-
{
77-
return new ByteMemoryStream(content.ReadBytes() );
78-
}
79-
else
80-
{
81-
return new StringStream(content.ReadString());
82-
}
69+
return new CharMemoryStream(content);
8370
}
8471

8572

0 commit comments

Comments
 (0)