From 2e586c706125442b044a3ab329135c859fba956f Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 16 Oct 2023 16:18:36 +0200 Subject: build: update to Zig 0.11.0 --- common/flags.zig | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'common/flags.zig') diff --git a/common/flags.zig b/common/flags.zig index 1e34ce1..3f75e13 100644 --- a/common/flags.zig +++ b/common/flags.zig @@ -41,14 +41,14 @@ pub fn parser(comptime Arg: type, comptime flags: []const Flag) type { const field: std.builtin.Type.StructField = switch (flag.kind) { .boolean => .{ .name = flag.name, - .field_type = bool, + .type = bool, .default_value = &false, .is_comptime = false, .alignment = @alignOf(bool), }, .arg => .{ .name = flag.name, - .field_type = ?[:0]const u8, + .type = ?[:0]const u8, .default_value = &@as(?[:0]const u8, null), .is_comptime = false, .alignment = @alignOf(?[:0]const u8), @@ -70,8 +70,13 @@ pub fn parser(comptime Arg: type, comptime flags: []const Flag) type { var i: usize = 0; outer: while (i < args.len) : (i += 1) { + const arg = switch (Arg) { + [*:0]const u8 => mem.sliceTo(args[i], 0), + [:0]const u8 => args[i], + else => unreachable, + }; inline for (flags) |flag| { - if (mem.eql(u8, "-" ++ flag.name, mem.span(args[i]))) { + if (mem.eql(u8, "-" ++ flag.name, arg)) { switch (flag.kind) { .boolean => @field(result_flags, flag.name) = true, .arg => { @@ -81,7 +86,11 @@ pub fn parser(comptime Arg: type, comptime flags: []const Flag) type { "' requires an argument but none was provided!", .{}); return error.MissingFlagArgument; } - @field(result_flags, flag.name) = mem.span(args[i]); + @field(result_flags, flag.name) = switch (Arg) { + [*:0]const u8 => mem.sliceTo(args[i], 0), + [:0]const u8 => args[i], + else => unreachable, + }; }, } continue :outer; -- cgit v1.2.3