Restart (once again)
This commit is contained in:
@@ -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{
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user