a40d160a5c
Relevant #764 dwarf debug info is modified to use this instead of std.os.File directly to make it easier for bare metal projects to take advantage of debug info parsing
33 lines
1.0 KiB
Zig
33 lines
1.0 KiB
Zig
const std = @import("../index.zig");
|
|
const InStream = std.io.InStream;
|
|
|
|
pub fn SeekableStream(comptime SeekErrorType: type, comptime GetSeekPosErrorType: type) type {
|
|
return struct {
|
|
const Self = @This();
|
|
pub const SeekError = SeekErrorType;
|
|
pub const GetSeekPosError = GetSeekPosErrorType;
|
|
|
|
seekToFn: fn (self: *Self, pos: usize) SeekError!void,
|
|
seekForwardFn: fn (self: *Self, pos: isize) SeekError!void,
|
|
|
|
getPosFn: fn (self: *Self) GetSeekPosError!usize,
|
|
getEndPosFn: fn (self: *Self) GetSeekPosError!usize,
|
|
|
|
pub fn seekTo(self: *Self, pos: usize) SeekError!void {
|
|
return self.seekToFn(self, pos);
|
|
}
|
|
|
|
pub fn seekForward(self: *Self, amt: isize) SeekError!void {
|
|
return self.seekForwardFn(self, amt);
|
|
}
|
|
|
|
pub fn getEndPos(self: *Self) GetSeekPosError!usize {
|
|
return self.getEndPosFn(self);
|
|
}
|
|
|
|
pub fn getPos(self: *Self) GetSeekPosError!usize {
|
|
return self.getPosFn(self);
|
|
}
|
|
};
|
|
}
|