26 lines
591 B
Zig
26 lines
591 B
Zig
const std = @import("std");
|
|
|
|
const Superblock = @import("superblock.zig").Superblock;
|
|
|
|
pub fn Reader(comptime T: type) type {
|
|
std.debug.assert(std.meta.hasFn(T, "pread"));
|
|
|
|
return struct {
|
|
const Self = @This();
|
|
|
|
alloc: std.mem.Allocator,
|
|
rdr: T,
|
|
|
|
super: Superblock = undefined,
|
|
|
|
pub fn init(alloc: std.mem.Allocator, rdr: T) Self {
|
|
const out = Self{
|
|
.alloc = alloc,
|
|
.rdr = rdr,
|
|
};
|
|
_ = try rdr.pread(std.mem.asBytes(&out.super), 0);
|
|
return out;
|
|
}
|
|
};
|
|
}
|