From 938b3ff7787a3e99bc41cac9add5ff25835eee22 Mon Sep 17 00:00:00 2001 From: Jimmi Holst Christensen Date: Thu, 17 Jan 2019 15:52:45 +0100 Subject: Refactored the arg iterators to new be static interface implementations * This makes arg iterators easier to understand and implement * It should also be faster than using the fieldToParent builtin --- src/comptime.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/comptime.zig') diff --git a/src/comptime.zig b/src/comptime.zig index 808915d..0a4257e 100644 --- a/src/comptime.zig +++ b/src/comptime.zig @@ -34,7 +34,7 @@ pub fn ComptimeClap(comptime Id: type, comptime params: []const clap.Param(Id)) pos: []const []const u8, allocator: *mem.Allocator, - pub fn parse(allocator: *mem.Allocator, comptime ArgError: type, iter: *clap.args.Iterator(ArgError)) !@This() { + pub fn parse(allocator: *mem.Allocator, comptime ArgIter: type, iter: *ArgIter) !@This() { var pos = std.ArrayList([]const u8).init(allocator); var res = @This(){ .options = []?[]const u8{null} ** options, @@ -43,7 +43,7 @@ pub fn ComptimeClap(comptime Id: type, comptime params: []const clap.Param(Id)) .allocator = allocator, }; - var stream = clap.StreamingClap(usize, ArgError).init(converted_params, iter); + var stream = clap.StreamingClap(usize, ArgIter).init(converted_params, iter); while (try stream.next()) |arg| { const param = arg.param; if (param.names.long == null and param.names.short == null) { @@ -124,10 +124,10 @@ test "clap.comptime.ComptimeClap" { var buf: [1024]u8 = undefined; var fb_allocator = heap.FixedBufferAllocator.init(buf[0..]); - var arg_iter = clap.args.SliceIterator.init([][]const u8{ + var iter = clap.args.SliceIterator.init([][]const u8{ "-a", "-c", "0", "something", }); - var args = try Clap.parse(&fb_allocator.allocator, clap.args.SliceIterator.Error, &arg_iter.iter); + var args = try Clap.parse(&fb_allocator.allocator, clap.args.SliceIterator, &iter); defer args.deinit(); debug.assert(args.flag("-a")); -- cgit v1.2.3