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 +++++++++++++---- common/globber.zig | 34 +++++++++++++++++----------------- 2 files changed, 30 insertions(+), 21 deletions(-) (limited to 'common') 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; diff --git a/common/globber.zig b/common/globber.zig index ead0fe7..c92e99c 100644 --- a/common/globber.zig +++ b/common/globber.zig @@ -34,19 +34,19 @@ pub fn validate(glob: []const u8) error{InvalidGlob}!void { test validate { const testing = std.testing; - _ = try validate("*"); - _ = try validate("a"); - _ = try validate("*a"); - _ = try validate("a*"); - _ = try validate("*a*"); - _ = try validate("ab"); - _ = try validate("*ab"); - _ = try validate("ab*"); - _ = try validate("*ab*"); - _ = try validate("abc"); - _ = try validate("*abc"); - _ = try validate("abc*"); - _ = try validate("*abc*"); + try validate("*"); + try validate("a"); + try validate("*a"); + try validate("a*"); + try validate("*a*"); + try validate("ab"); + try validate("*ab"); + try validate("ab*"); + try validate("*ab*"); + try validate("abc"); + try validate("*abc"); + try validate("abc*"); + try validate("*abc*"); try testing.expectError(error.InvalidGlob, validate("")); try testing.expectError(error.InvalidGlob, validate("**")); @@ -165,8 +165,8 @@ pub fn order(a: []const u8, b: []const u8) std.math.Order { return .lt; } - const count_a = @as(u2, @boolToInt(a[0] == '*')) + @boolToInt(a[a.len - 1] == '*'); - const count_b = @as(u2, @boolToInt(b[0] == '*')) + @boolToInt(b[b.len - 1] == '*'); + const count_a = @as(u2, @intFromBool(a[0] == '*')) + @intFromBool(a[a.len - 1] == '*'); + const count_b = @as(u2, @intFromBool(b[0] == '*')) + @intFromBool(b[b.len - 1] == '*'); if (count_a == 0 and count_b == 0) { return .eq; @@ -206,7 +206,7 @@ test order { "a", }; - for (descending) |a, i| { + for (descending, 0..) |a, i| { for (descending[i..]) |b| { try testing.expect(order(a, b) != .lt); } @@ -215,7 +215,7 @@ test order { var ascending = descending; mem.reverse([]const u8, &ascending); - for (ascending) |a, i| { + for (ascending, 0..) |a, i| { for (ascending[i..]) |b| { try testing.expect(order(a, b) != .gt); } -- cgit v1.2.3