const std = @import("std"); const assert = std.debug.assert; const BitField = packed struct { a: u3, b: u3, c: u2, }; test "bit field access" { var data: BitField = .{ .a = 1, .b = 2, .c = 3 }; assert(data.a == 1); assert(deref(&data.b) == 2); assert(data.c == 3); comptime assert(@sizeOf(BitField) == 1); data.b += 1; assert(data.b == 3); data.a += 1; assert(data.a == 2); assert(data.b == 3); } fn deref(ptr: var) u3 { std.debug.warn("\n{}\n", .{@typeName(@TypeOf(ptr))}); return ptr.*; }