From 666575baab3f4b935b7ae2db8b2aa8ec44af20a9 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 28 Dec 2025 22:14:39 -0800 Subject: [PATCH] AnyReadable: add fromStd to help with migration --- AnyReadable.zig | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/AnyReadable.zig b/AnyReadable.zig index 5d134427d13e8f0a74c6ca67b98c848f981704c5..49de880d0118f9bafff4f82e118d668ccdf6f03f 100644 --- a/AnyReadable.zig +++ b/AnyReadable.zig @@ -16,3 +16,16 @@ pub fn read(r: *AnyReadable, buffer: []u8) !usize { pub fn anyReadable(r: AnyReadable) AnyReadable { return r; } + +pub fn fromStd(reader_ptr: anytype) AnyReadable { + const S = struct { + fn _read(s: *allowzero anyopaque, buffer: []u8) !usize { + const r: @TypeOf(reader_ptr) = @ptrCast(@alignCast(s)); + return r.read(buffer); + } + }; + return .{ + .vtable = &.{ .read = &S._read }, + .state = @constCast(@ptrCast(reader_ptr)), + }; +} -- 2.54.0