Files
zig-squashfs/src/decomp.zig
T
2026-03-22 06:35:25 -05:00

23 lines
598 B
Zig

const std = @import("std");
const Decompressor = @This();
pub const Error = error{
OutOfMemory,
BadInput,
OutputTooSmall,
};
vtable: *const struct {
decompress: *const fn (*Decompressor, []u8, []u8) Error!usize = DefaultDecompress,
stateless: *const fn (std.mem.Allocator, []u8, []u8) Error!usize,
},
pub fn decompress(self: *Decompressor, in: []u8, out: []u8) Error!usize {
return self.vtable.decompress(self, in, out);
}
fn DefaultDecompress(self: *Decompressor, in: []u8, out: []u8) Error!usize {
return self.vtable.stateless(std.heap.smp_allocator, in, out);
}