| ... | @@ -41,8 +41,13 @@ pub fn anyReadable(r: AnyReadable) AnyReadable { | ... | @@ -41,8 +41,13 @@ pub fn anyReadable(r: AnyReadable) AnyReadable { |
| 41 | pub fn fromStd(reader_ptr: *std.Io.Reader) AnyReadable { | 41 | pub fn fromStd(reader_ptr: *std.Io.Reader) AnyReadable { |
| 42 | const S = struct { | 42 | const S = struct { |
| 43 | fn _read(s: *allowzero anyopaque, buffer: []u8) !usize { | 43 | fn _read(s: *allowzero anyopaque, buffer: []u8) !usize { |
| 44 | const r: @TypeOf(reader_ptr) = @ptrCast(@alignCast(s)); | 44 | const r: *std.Io.Reader = @ptrCast(@alignCast(s)); |
| 45 | return r.readSliceShort(buffer); | 45 | var w: std.Io.Writer = .fixed(buffer); |
| | 46 | return r.stream(&w, .limited(buffer.len)) catch |err| switch (err) { |
| | 47 | error.ReadFailed => |e| e, |
| | 48 | error.WriteFailed => unreachable, |
| | 49 | error.EndOfStream => 0, |
| | 50 | }; |
| 46 | } | 51 | } |
| 47 | }; | 52 | }; |
| 48 | return .{ | 53 | return .{ |