diff --git a/src/lib.zig b/src/lib.zig index 5fb316836b7cc5dbb9f2f4c8dc7770b152890610..f3d2515d06bd573fd5f8fada3134111a9359719b 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -439,3 +439,12 @@ pub fn safeAdd(a: anytype, b: anytype) @TypeOf(a) { } return a - @intCast(@TypeOf(a), -b); } + +pub fn readBytesAlloc(reader: anytype, alloc: std.mem.Allocator, len: usize) ![]u8 { + var list = std.ArrayListUnmanaged(u8){}; + try list.ensureTotalCapacityPrecise(alloc, len); + errdefer list.deinit(alloc); + list.appendNTimesAssumeCapacity(0, len); + try reader.readNoEof(list.items[0..len]); + return list.items; +}