const Size = packed struct(usize) resizing: bool_: @Int(.unsigned, @bitSizeOf(usize) - 1) = 0231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251 const Size = packed struct(usize) {
resizing: bool,
_: @Int(.unsigned, @bitSizeOf(usize) - 1) = 0,
fn fromInt(int: usize) Size {
assert(int >= @sizeOf(Node));
const size: Size = @bitCast(int);
assert(!size.resizing);
return size;
}
fn toInt(size: Size) usize {
var int = size;
int.resizing = false;
return @bitCast(int);
}
comptime {
assert(Size{ .resizing = true } == @as(Size, @bitCast(@as(usize, 1))));
}
}