all: use explicit backing integers for packed structs

This commit is contained in:
Ali Chraghi 2023-03-28 15:11:13 +03:30 committed by Stephen Gutekanst
parent b63001eb4c
commit d1ae96b650
2 changed files with 8 additions and 8 deletions

View file

@ -4,12 +4,12 @@ const c = @import("c.zig").c;
/// A bitmask of all Joystick hat states /// A bitmask of all Joystick hat states
/// ///
/// See glfw.Joystick.getHats for how these are used. /// See glfw.Joystick.getHats for how these are used.
pub const Hat = packed struct { pub const Hat = packed struct(u8) {
up: bool = false, up: bool = false,
right: bool = false, right: bool = false,
down: bool = false, down: bool = false,
left: bool = false, left: bool = false,
_reserved: u4 = 0, _padding: u4 = 0,
pub inline fn centered(self: Hat) bool { pub inline fn centered(self: Hat) bool {
return self.up == false and self.right == false and self.down == false and self.left == false; return self.up == false and self.right == false and self.down == false and self.left == false;
@ -57,7 +57,7 @@ test "from int, single" {
.right = false, .right = false,
.down = false, .down = false,
.left = false, .left = false,
._reserved = 0, ._padding = 0,
}, Hat.fromInt(RawHat.up)); }, Hat.fromInt(RawHat.up));
} }
@ -69,7 +69,7 @@ test "from int, multi" {
.right = false, .right = false,
.down = true, .down = true,
.left = true, .left = true,
._reserved = 0, ._padding = 0,
}, Hat.fromInt(RawHat.up | RawHat.down | RawHat.left)); }, Hat.fromInt(RawHat.up | RawHat.down | RawHat.left));
} }
@ -81,7 +81,7 @@ test "to int, single" {
.right = false, .right = false,
.down = false, .down = false,
.left = false, .left = false,
._reserved = 0, ._padding = 0,
}; };
try std.testing.expectEqual(v.toInt(c_int), RawHat.up); try std.testing.expectEqual(v.toInt(c_int), RawHat.up);
} }
@ -94,7 +94,7 @@ test "to int, multi" {
.right = false, .right = false,
.down = true, .down = true,
.left = true, .left = true,
._reserved = 0, ._padding = 0,
}; };
try std.testing.expectEqual(v.toInt(c_int), RawHat.up | RawHat.down | RawHat.left); try std.testing.expectEqual(v.toInt(c_int), RawHat.up | RawHat.down | RawHat.left);
} }

View file

@ -6,14 +6,14 @@ const c = @import("c.zig").c;
// must be in sync with GLFW C constants in modifier group, search for "@defgroup mods Modifier key flags" // must be in sync with GLFW C constants in modifier group, search for "@defgroup mods Modifier key flags"
/// A bitmask of all key modifiers /// A bitmask of all key modifiers
pub const Mods = packed struct { pub const Mods = packed struct(u8) {
shift: bool = false, shift: bool = false,
control: bool = false, control: bool = false,
alt: bool = false, alt: bool = false,
super: bool = false, super: bool = false,
caps_lock: bool = false, caps_lock: bool = false,
num_lock: bool = false, num_lock: bool = false,
_reserved: u2 = 0, _padding: u2 = 0,
inline fn verifyIntType(comptime IntType: type) void { inline fn verifyIntType(comptime IntType: type) void {
comptime { comptime {