zig/lib/std/compress/lzma2.zig
Andrew Kelley 6c48aad991 update some more std lib API to new Reader/Writer
std.compress needs an audit, I see some problems
2025-07-01 16:35:26 -07:00

26 lines
969 B
Zig

const std = @import("../std.zig");
const Allocator = std.mem.Allocator;
pub const decode = @import("lzma2/decode.zig");
pub fn decompress(allocator: Allocator, reader: *std.io.BufferedReader, writer: *std.io.BufferedWriter) !void {
var decoder = try decode.Decoder.init(allocator);
defer decoder.deinit(allocator);
return decoder.decompress(allocator, reader, writer);
}
test {
const expected = "Hello\nWorld!\n";
const compressed = [_]u8{
0x01, 0x00, 0x05, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x02,
0x00, 0x06, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x21, 0x0A, 0x00,
};
var stream: std.io.BufferedReader = undefined;
stream.initFixed(&compressed);
var decomp: std.io.AllocatingWriter = undefined;
const decomp_bw = decomp.init(std.testing.allocator);
defer decomp.deinit();
try decompress(std.testing.allocator, &stream, decomp_bw);
try std.testing.expectEqualSlices(u8, expected, decomp.getWritten());
}