| ... | @@ -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 | }; |
| 12 | | 12 | |
| 13 | var singles: std.ArrayHashMap(string, string, std.array_hash_map.StringContext, true) = undefined; | 13 | var allocator: std.mem.Allocator = undefined; |
| 14 | var multis: std.ArrayHashMap(string, List, std.array_hash_map.StringContext, true) = undefined; | 14 | var singles: std.array_hash_map.String(string) = .empty; |
| | 15 | var multis: std.array_hash_map.String(List) = .empty; |
| 15 | | 16 | |
| 16 | pub fn init(alloc: std.mem.Allocator) void { | 17 | pub 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 | } |
| 20 | | 20 | |
| 21 | pub fn deinit() void { | 21 | pub 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 | } |
| 28 | | 28 | |
| 29 | pub fn addSingle(name: string) !void { | 29 | pub fn addSingle(name: string) !void { |
| 30 | try singles.putNoClobber(name, ""); | 30 | try singles.putNoClobber(allocator, name, ""); |
| 31 | } | 31 | } |
| 32 | | 32 | |
| 33 | pub fn addMulti(name: string) !void { | 33 | pub 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 | } |
| 36 | | 36 | |
| 37 | pub const FlagDashKind = enum { | 37 | pub const FlagDashKind = enum { |
| ... | @@ -46,9 +46,9 @@ pub const FlagDashKind = enum { | ... | @@ -46,9 +46,9 @@ pub const FlagDashKind = enum { |
| 46 | } | 46 | } |
| 47 | }; | 47 | }; |
| 48 | | 48 | |
| 49 | pub fn parse(k: FlagDashKind) !std.process.ArgIterator { | 49 | pub 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 | } |