Restart (once again)

This commit is contained in:
Caleb J. Gardner
2026-01-15 06:40:59 -06:00
parent ad7aa271ea
commit 428f938c3a
14 changed files with 395 additions and 1 deletions
+34
View File
@@ -0,0 +1,34 @@
const std = @import("std");
const Reader = std.Io.Reader;
const Writer = std.Io.Writer;
const Limit = std.Io.Limit;
const StreamError = std.Io.Reader.StreamError;
const DecompMgr = @import("../decomp.zig");
const This = @This();
rdr: Reader,
decomp: *DecompMgr,
buf: [8192]u8 = undefined,
interface: Reader,
pub fn init(rdr: Reader, decomp: *DecompMgr) This {
return .{
.rdr = rdr,
.decomp = decomp,
.interface = .{
.buffer = &[0]u8{},
.end = 0,
.seek = 0,
.vtable = &{
.stream = stream,
},
},
};
}
fn stream(rdr: *Reader, wrt: *Writer, limit: Limit) StreamError!usize{
}
+20
View File
@@ -0,0 +1,20 @@
//! A File that's meant where it's meaningful content starts at a given offset.
const std = @import("std");
const File = std.fs.File;
const Reader = std.fs.File.Reader;
const OffsetFile = @This();
fil: File,
offset: u64,
pub fn init(fil: File, init_offset: u64) OffsetFile {
return .{ .fil = fil, .offset = init_offset };
}
pub fn readerAt(self: OffsetFile, offset: u64, buffer: []u8) !Reader {
var rdr = self.fil.reader(buffer);
try rdr.seekTo(self.offset + offset);
return rdr;
}