From d5d5f7f06397d73f497d352f2f38b1a53d932b0d Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Mon, 19 Feb 2024 23:38:33 +0200 Subject: Big update to modern zig --- src/key.zig | 51 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) (limited to 'src/key.zig') diff --git a/src/key.zig b/src/key.zig index f2538bd..d2748e7 100644 --- a/src/key.zig +++ b/src/key.zig @@ -27,7 +27,7 @@ pub const Key = enum(u16) { _, pub fn char(ch: u8) Key { - return @intToEnum(Key, ch); + return @enumFromInt(ch); } pub fn shift(k: anytype) Key { @@ -52,20 +52,16 @@ pub const Key = enum(u16) { } fn mod(comptime modifier: Key, k: Key) Key { - comptime std.debug.assert( - modifier == .mod_shft - or modifier == .mod_meta - or modifier == .mod_ctrl - ); + comptime std.debug.assert(modifier == .mod_shft or modifier == .mod_meta or modifier == .mod_ctrl); - const shft_int = @enumToInt(Key.mod_shft); - const meta_int = @enumToInt(Key.mod_meta); - const ctrl_int = @enumToInt(Key.mod_ctrl); + const shft_int = @intFromEnum(Key.mod_shft); + const meta_int = @intFromEnum(Key.mod_meta); + const ctrl_int = @intFromEnum(Key.mod_ctrl); - const max_char_int = @enumToInt(Key.max_char); + const max_char_int = @intFromEnum(Key.max_char); - const mod_int = @enumToInt(modifier); - const k_int = @enumToInt(k); + const mod_int = @intFromEnum(modifier); + const k_int = @intFromEnum(k); if (k_int & mod_int == mod_int) { return k; } @@ -76,12 +72,12 @@ pub const Key = enum(u16) { // Appending S- to a character is not smart std.debug.assert(modifier != .mod_shft); return switch (modifier) { - .mod_meta => @intToEnum(Key, k_int | meta_int), - .mod_ctrl => @intToEnum(Key, k_origmod | (k_nomod & 0x1f)), + .mod_meta => @enumFromInt(k_int | meta_int), + .mod_ctrl => @enumFromInt(k_origmod | (k_nomod & 0x1f)), else => unreachable, }; } else { - return @intToEnum(Key, k_int | mod_int); + return @enumFromInt(k_int | mod_int); } } @@ -125,15 +121,15 @@ pub const Key = enum(u16) { options: std.fmt.FormatOptions, writer: anytype, ) @TypeOf(writer).Error!void { - const shft_int = @enumToInt(Key.mod_shft); - const meta_int = @enumToInt(Key.mod_meta); - const ctrl_int = @enumToInt(Key.mod_ctrl); + const shft_int = @intFromEnum(Key.mod_shft); + const meta_int = @intFromEnum(Key.mod_meta); + const ctrl_int = @intFromEnum(Key.mod_ctrl); - const key_int = @enumToInt(key); + const key_int = @intFromEnum(key); if (key_int & shft_int == shft_int) { try std.fmt.formatBuf("S-", options, writer); return Key.format( - @intToEnum(Key, key_int & ~shft_int), + @enumFromInt(key_int & ~shft_int), "", options, writer, @@ -141,7 +137,7 @@ pub const Key = enum(u16) { } else if (key_int & meta_int == meta_int) { try std.fmt.formatBuf("M-", options, writer); return Key.format( - @intToEnum(Key, key_int & ~meta_int), + @enumFromInt(key_int & ~meta_int), "", options, writer, @@ -149,22 +145,17 @@ pub const Key = enum(u16) { } else if (key_int & ctrl_int == ctrl_int) { try std.fmt.formatBuf("C-", options, writer); return Key.format( - @intToEnum(Key, key_int & ~ctrl_int), + @enumFromInt(key_int & ~ctrl_int), "", options, writer, ); } else if (key_int < 0x20) { try std.fmt.formatBuf("C-", options, writer); - return Key.format( - Key.char(@intCast(u8, key_int + 0x40)), - "", - options, - writer - ); + return Key.format(Key.char(@intCast(key_int + 0x40)), "", options, writer); } else if (key_int < 0x100) { - const ch = @intCast(u8, key_int); - if (std.ascii.isGraph(ch)) { + const ch: u8 = @intCast(key_int); + if (std.ascii.isPrint(ch)) { return writer.writeByte(ch); } else { try writer.writeAll("<\\x"); -- cgit v1.2.3