From ecfdb8fd1dcc3c13c609f6ef8884185433f28cbf Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Tue, 2 Jun 2026 14:20:32 -0700 Subject: [PATCH] AnyReadable.fromStd: instead of .readSliceShort use .stream the former has an undesirable comment for the behavior we want here > Returns the number of bytes read, which is less than `buffer.len` if and only if the stream reached the end. --- AnyReadable.zig | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/AnyReadable.zig b/AnyReadable.zig index aad745d22a1c6991ee5109a165387b0d88d45172..855c06cd945af1dbef2179d8f7866ab82e264aa3 100644 --- a/AnyReadable.zig +++ b/AnyReadable.zig @@ -41,8 +41,13 @@ pub fn anyReadable(r: AnyReadable) AnyReadable { pub fn fromStd(reader_ptr: *std.Io.Reader) AnyReadable { const S = struct { fn _read(s: *allowzero anyopaque, buffer: []u8) !usize { - const r: @TypeOf(reader_ptr) = @ptrCast(@alignCast(s)); - return r.readSliceShort(buffer); + const r: *std.Io.Reader = @ptrCast(@alignCast(s)); + var w: std.Io.Writer = .fixed(buffer); + return r.stream(&w, .limited(buffer.len)) catch |err| switch (err) { + error.ReadFailed => |e| e, + error.WriteFailed => unreachable, + error.EndOfStream => 0, + }; } }; return .{ -- 2.54.0