From 0cdfff4898a660596bd4ff7235c1676afdaf8210 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 27 Aug 2021 10:06:52 -0700 Subject: [PATCH] Chunked string reading --- BeefLibs/corlib/src/IO/Stream.bf | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/BeefLibs/corlib/src/IO/Stream.bf b/BeefLibs/corlib/src/IO/Stream.bf index 404a5d8b..a7bbd32a 100644 --- a/BeefLibs/corlib/src/IO/Stream.bf +++ b/BeefLibs/corlib/src/IO/Stream.bf @@ -103,16 +103,17 @@ namespace System.IO if (size < 0) return .Err; - for (int64 i = 0; i < size; i++) + int prevLen = output.Length; + char8* buf = output.PrepareBuffer(size); + switch (TryRead(.((uint8*)buf, size))) { - Result char = Read(); - if (char == .Err) - return .Err; - - output.Append(char); + case .Ok(let readLen): + if (readLen < size) + output.Length = prevLen + readLen; + return .Ok; + case .Err: + return .Err; } - - return .Ok; } public Result ReadStrSized32(String output)