| ... | ... | @@ -126,6 +126,16 @@ pub fn Readable(T: type, this_kind: enum { _var, _const, _bare }) type { |
| 126 | 126 | } |
| 127 | 127 | return error.StreamTooLong; |
| 128 | 128 | } |
| 129 | |
| 130 | pub fn readAlloc(self: Self, allocator: std.mem.Allocator, size: usize) ![]u8 { |
| 131 | var array_list = try std.ArrayList(u8).initCapacity(allocator, size); |
| 132 | defer array_list.deinit(); |
| 133 | try array_list.ensureUnusedCapacity(size); |
| 134 | const len = try readAll(self, array_list.allocatedSlice()); |
| 135 | array_list.items.len += len; |
| 136 | if (len != size) return error.EndOfStream; |
| 137 | return array_list.toOwnedSlice(); |
| 138 | } |
| 129 | 139 | }; |
| 130 | 140 | } |
| 131 | 141 | |