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 }