Proper zig project organization

This commit is contained in:
Caleb Gardner
2025-05-14 11:46:09 -05:00
parent 6dd3054006
commit 5daffdafc7
17 changed files with 198 additions and 26 deletions
+23
View File
@@ -0,0 +1,23 @@
const inode = @import("inode.zig");
const Reader = @import("squashfs.zig").Reader;
const MetadataReader = @import("metadata_reader.zig").MetadataReader;
const FileOffsetReader = @import("file_offset_reader.zig").FileOffsetReader;
pub const File = struct {
rdr: *Reader,
inode: inode.Inode,
name: []const u8,
dir_entries: []const void = undefined, //TODO
pub fn fromRef(ref: inode.InodeRef, name: []const u8, rdr: *Reader) !File {
var offset_rdr: FileOffsetReader = .init(rdr.file, rdr.super.inode_table + ref.block_start);
var meta_rdr: MetadataReader = .init(rdr.super.comp, offset_rdr.any(), rdr.alloc.allocator());
try meta_rdr.skip(ref.offset);
const in = try inode.readInode(meta_rdr, rdr.super.block_size, rdr.alloc.allocator());
return .{
.rdr = rdr,
.inode = in,
.name = name,
};
}
};