authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-05-01 14:57:20-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-01 16:35:28-07:00
log439117d0d75f28d8d555fceacc42315ec1dd8e34
treeec3295ab03f174035d71cb9283911ade59750fe5
parente05af2da131b5d9353711ffb5979c67f4bd8b5af

std.compress.zstd.Decompress: avoid `@errorCast`

better error return traces and type safety

1 files changed, 8 insertions(+), 2 deletions(-)

lib/std/compress/zstd/Decompress.zig+8-2
......@@ -261,13 +261,19 @@ fn discard(context: ?*anyopaque, limit: Reader.Limit) Reader.Error!usize {
261261 var trash_buffer: [64]u8 = undefined;
262262 var null_writer: std.io.Writer.Null = undefined;
263263 var bw = null_writer.writer().buffered(&trash_buffer);
264 return @errorCast(read(context, &bw, limit));
264 return read(context, &bw, limit) catch |err| switch (err) {
265 error.WriteFailed => unreachable,
266 else => |e| return e,
267 };
265268}
266269
267270fn readVec(context: ?*anyopaque, data: []const []u8) Reader.Error!usize {
268271 var bw: BufferedWriter = undefined;
269272 bw.initFixed(data[0]);
270 return @errorCast(read(context, &bw, .limited(data[0].len)));
273 return read(context, &bw, .limited(data[0].len)) catch |err| switch (err) {
274 error.WriteFailed => unreachable,
275 else => |e| return e,
276 };
271277}
272278
273279pub const Frame = struct {