| ... | ... | @@ -16,3 +16,16 @@ pub fn read(r: *AnyReadable, buffer: []u8) !usize { |
| 16 | 16 | pub fn anyReadable(r: AnyReadable) AnyReadable { |
| 17 | 17 | return r; |
| 18 | 18 | } |
| 19 | |
| 20 | pub fn fromStd(reader_ptr: anytype) AnyReadable { |
| 21 | const S = struct { |
| 22 | fn _read(s: *allowzero anyopaque, buffer: []u8) !usize { |
| 23 | const r: @TypeOf(reader_ptr) = @ptrCast(@alignCast(s)); |
| 24 | return r.read(buffer); |
| 25 | } |
| 26 | }; |
| 27 | return .{ |
| 28 | .vtable = &.{ .read = &S._read }, |
| 29 | .state = @constCast(@ptrCast(reader_ptr)), |
| 30 | }; |
| 31 | } |