authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-06-07 20:53:46 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-06-07 20:53:46 -07:00
log9f752ff7c27b1f9b3aa2734f8b992ba8ea883b69
tree4625f76233a08107380e55af9697c3f0c0ab3fb0
parentcc7dffea72d4a17d4a96f4e2c8f0009b399dab3e
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

update to zig 0.16.0


4 files changed, 22 insertions(+), 14 deletions(-)

README.md+1-1
...@@ -3,7 +3,7 @@...@@ -3,7 +3,7 @@
3![loc](https://sloc.xyz/github/nektro/zig-flag)3![loc](https://sloc.xyz/github/nektro/zig-flag)
4[![license](https://img.shields.io/github/license/nektro/zig-flag.svg)](https://github.com/nektro/zig-flag/blob/master/LICENSE)4[![license](https://img.shields.io/github/license/nektro/zig-flag.svg)](https://github.com/nektro/zig-flag/blob/master/LICENSE)
5[![nektro @ github sponsors](https://img.shields.io/badge/sponsors-nektro-purple?logo=github)](https://github.com/sponsors/nektro)5[![nektro @ github sponsors](https://img.shields.io/badge/sponsors-nektro-purple?logo=github)](https://github.com/sponsors/nektro)
6[![Zig](https://img.shields.io/badge/Zig-0.15-f7a41d)](https://ziglang.org/)6[![Zig](https://img.shields.io/badge/Zig-0.16-f7a41d)](https://ziglang.org/)
7[![Zigmod](https://img.shields.io/badge/Zigmod-latest-f7a41d)](https://github.com/nektro/zigmod)7[![Zigmod](https://img.shields.io/badge/Zigmod-latest-f7a41d)](https://github.com/nektro/zigmod)
88
9Config management for Zig.9Config management for Zig.
build.zig+1-1
...@@ -14,7 +14,7 @@ pub fn build(b: *std.Build) void {...@@ -14,7 +14,7 @@ pub fn build(b: *std.Build) void {
14 }),14 }),
15 });15 });
16 deps.addAllTo(tests);16 deps.addAllTo(tests);
17 tests.linkLibC();17 tests.root_module.link_libc = true;
18 tests.use_llvm = !disable_llvm;18 tests.use_llvm = !disable_llvm;
19 tests.use_lld = !disable_llvm;19 tests.use_lld = !disable_llvm;
20 b.getInstallStep().dependOn(&tests.step);20 b.getInstallStep().dependOn(&tests.step);
src/lib.zig+11-11
...@@ -10,28 +10,28 @@ const sys = switch (builtin.target.os.tag) {...@@ -10,28 +10,28 @@ const sys = switch (builtin.target.os.tag) {
10 else => unreachable, // TODO:10 else => unreachable, // TODO:
11};11};
1212
13var singles: std.ArrayHashMap(string, string, std.array_hash_map.StringContext, true) = undefined;13var allocator: std.mem.Allocator = undefined;
14var multis: std.ArrayHashMap(string, List, std.array_hash_map.StringContext, true) = undefined;14var singles: std.array_hash_map.String(string) = .empty;
15var multis: std.array_hash_map.String(List) = .empty;
1516
16pub fn init(alloc: std.mem.Allocator) void {17pub fn init(alloc: std.mem.Allocator) void {
17 singles = std.ArrayHashMap(string, string, std.array_hash_map.StringContext, true).init(alloc);18 allocator = alloc;
18 multis = std.ArrayHashMap(string, List, std.array_hash_map.StringContext, true).init(alloc);
19}19}
2020
21pub fn deinit() void {21pub fn deinit() void {
22 singles.deinit();22 singles.deinit(allocator);
23 for (multis.values()) |array_list| {23 for (multis.values()) |array_list| {
24 array_list.deinit();24 array_list.deinit();
25 }25 }
26 multis.deinit();26 multis.deinit(allocator);
27}27}
2828
29pub fn addSingle(name: string) !void {29pub fn addSingle(name: string) !void {
30 try singles.putNoClobber(name, "");30 try singles.putNoClobber(allocator, name, "");
31}31}
3232
33pub fn addMulti(name: string) !void {33pub fn addMulti(name: string) !void {
34 try multis.putNoClobber(name, List.init(multis.allocator));34 try multis.putNoClobber(allocator, name, List.init(allocator));
35}35}
3636
37pub const FlagDashKind = enum {37pub const FlagDashKind = enum {
...@@ -46,9 +46,9 @@ pub const FlagDashKind = enum {...@@ -46,9 +46,9 @@ pub const FlagDashKind = enum {
46 }46 }
47};47};
4848
49pub fn parse(k: FlagDashKind) !std.process.ArgIterator {49pub fn parse(k: FlagDashKind, args: std.process.Args) !std.process.Args.Iterator {
50 const dash = k.hypen();50 const dash = k.hypen();
51 var argiter = try std.process.argsWithAllocator(singles.allocator);51 var argiter = args.iterate();
52 defer argiter.deinit();52 defer argiter.deinit();
53 var argi: usize = 0;53 var argi: usize = 0;
54 blk: while (argiter.next()) |item| : (argi += 1) {54 blk: while (argiter.next()) |item| : (argi += 1) {
...@@ -61,7 +61,7 @@ pub fn parse(k: FlagDashKind) !std.process.ArgIterator {...@@ -61,7 +61,7 @@ pub fn parse(k: FlagDashKind) !std.process.ArgIterator {
61 if (std.mem.eql(u8, name, jtem)) {61 if (std.mem.eql(u8, name, jtem)) {
62 const value = argiter.next().?;62 const value = argiter.next().?;
63 argi += 1;63 argi += 1;
64 try singles.put(name, value);64 try singles.put(allocator, name, value);
65 continue :blk;65 continue :blk;
66 }66 }
67 }67 }
test.zig+9-1
...@@ -2,5 +2,13 @@ const std = @import("std");...@@ -2,5 +2,13 @@ const std = @import("std");
2const flag = @import("flag");2const flag = @import("flag");
33
4test {4test {
5 std.testing.refAllDeclsRecursive(flag);5 _ = &flag.init;
6 _ = &flag.deinit;
7 _ = &flag.addSingle;
8 _ = &flag.addMulti;
9 _ = &flag.parse;
10 _ = &flag.parseEnv;
11 _ = &flag.getSingle;
12 _ = &flag.getMulti;
13 _ = &flag.getBool;
6}14}