From cb0aa4f03c8ef7a637a180df2b044408aa8f745a Mon Sep 17 00:00:00 2001 From: LN Liberda Date: Fri, 22 May 2026 19:26:04 +0200 Subject: [PATCH] Zig 0.16: Update util.LineReader Lazy, minimal changes --- src/util.zig | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/src/util.zig b/src/util.zig index 607dfb5..2089909 100644 --- a/src/util.zig +++ b/src/util.zig @@ -203,31 +203,11 @@ pub fn expanduser(path: []const u8, alloc: std.mem.Allocator) ![:0]u8 { // Silly abstraction to read a file one line at a time. Only exists to help // with supporting both Zig 0.14 and 0.15, can be removed once 0.14 support is // dropped. -pub const LineReader = if (@hasDecl(std.io, "bufferedReader")) struct { - rd: std.io.BufferedReader(4096, std.fs.File.Reader), - fbs: std.io.FixedBufferStream([]u8), +pub const LineReader = struct { + rd: std.Io.File.Reader, - pub fn init(f: std.fs.File, buf: []u8) @This() { - return .{ - .rd = std.io.bufferedReader(f.reader()), - .fbs = std.io.fixedBufferStream(buf), - }; - } - - pub fn read(s: *@This()) !?[]u8 { - s.fbs.reset(); - s.rd.reader().streamUntilDelimiter(s.fbs.writer(), '\n', s.fbs.buffer.len) catch |err| switch (err) { - error.EndOfStream => if (s.fbs.getPos() catch unreachable == 0) return null, - else => |e| return e, - }; - return s.fbs.getWritten(); - } - -} else struct { - rd: std.fs.File.Reader, - - pub fn init(f: std.fs.File, buf: []u8) @This() { - return .{ .rd = f.readerStreaming(buf) }; + pub fn init(io: std.Io, f: std.Io.File, buf: []u8) @This() { + return .{ .rd = f.readerStreaming(io, buf) }; } pub fn read(s: *@This()) !?[]u8 {