lib/filigree/src/layout/binary.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const std = @import("std");
2
3 pub const LayoutError = error{
4 InvalidLayout,
5 UnsupportedCoverage,
6 UnsupportedClassDef,
7 };
8
9 pub fn hasBytes(data: []const u8, offset: usize, len: usize) bool {
10 return offset <= data.len and len <= data.len - offset;
11 }
12
13 pub fn readU16(data: []const u8, offset: usize) LayoutError!u16 {
14 if (!hasBytes(data, offset, 2)) return error.InvalidLayout;
15 return std.mem.readInt(u16, data[offset..][0..2], .big);
16 }