Files
zig-squashfs/src/decomp/zig/lzma.zig
T
Caleb J. Gardner d0787a5200 Fixed a couple decompressor issues.
Re-added ExtractionOptions
2026-04-03 22:27:40 -05:00

19 lines
648 B
Zig

const std = @import("std");
const lzma = std.compress.lzma;
const Reader = std.Io.Reader;
const Decompressor = @import("../../decomp.zig");
interface: Decompressor = .{ .vtable = &.{ .stateless = stateless } },
pub fn stateless(alloc: std.mem.Allocator, in: []u8, out: []u8) Decompressor.Error!usize {
var rdr: Reader = .static(in);
var decomp = try lzma.decompress(alloc, rdr.adaptToOldInterface());
defer decomp.deinit();
const len = decomp.read(out) catch |err| return switch (err) {
error.CorruptInput, error.EndOfStream, error.Overflow => Decompressor.Error.ReadFailed,
else => err,
};
return len;
}