Added basic test

Fixed various bugs
This commit is contained in:
Caleb Gardner
2025-07-17 03:50:09 -05:00
parent 87563e43a5
commit d6b136bc8f
13 changed files with 145 additions and 97 deletions
+5 -11
View File
@@ -27,8 +27,8 @@ pub fn DataReader(comptime T: type) type {
frag: []u8 = &[0]u8{},
read_block: []u8,
read_offset: u64,
read_block: []u8 = &[0]u8{},
read_offset: u64 = 0,
read_idx: u32 = 0,
pub fn init(
@@ -41,7 +41,7 @@ pub fn DataReader(comptime T: type) type {
block_size: u32,
) !Self {
var cur_offset = init_offset;
const offsets = alloc.alloc(u64, sizes.len);
const offsets = try alloc.alloc(u64, sizes.len);
for (0..sizes.len) |i| {
offsets[i] = cur_offset;
cur_offset += sizes[i].size;
@@ -74,10 +74,7 @@ pub fn DataReader(comptime T: type) type {
defer self.alloc.free(block);
_ = try self.comp.decompress(
self.alloc,
std.io.limitedReader(
self.rdr.readerAt(entry.block),
entry.size.size,
),
self.rdr.readerAt(entry.block).reader(),
block,
);
@memcpy(self.frag, block[offset..]);
@@ -106,10 +103,7 @@ pub fn DataReader(comptime T: type) type {
}
_ = try self.comp.decompress(
self.alloc,
std.io.limitedReader(
self.rdr.readerAt(self.offsets[idx]),
self.sizes[idx].size,
),
self.rdr.readerAt(self.offsets[idx]).reader(),
block,
);
return block;