pub const Lazy = enum(u32) 2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978 pub const Lazy = enum(u32) {
/// Values which fit in a `u6` are already-resolved `Alignment` values. Other values are
/// indices into `Builder.alignment_forward_references`, offset by `maxInt(u6)`.
_,
pub fn wrap(a: Alignment) Lazy {
return @fromBackingInt(@backingInt(a));
}
pub fn resolve(l: Lazy, b: *const Builder) Alignment {
return switch (@backingInt(l)) {
0...maxInt(u6) => |raw| @fromBackingInt(@intCast(raw)),
else => |offset_index| b.alignment_forward_references.items[offset_index - maxInt(u6)],
};
}
fn fromFwdRefIndex(index: usize) Lazy {
return @fromBackingInt(@intCast(index + maxInt(u6)));
}
fn toFwdRefIndex(l: Lazy) usize {
return @backingInt(l) - maxInt(u6);
}
}