From 5ebe2be10b96410a6182a2aa66ff0d2bd43eed3f Mon Sep 17 00:00:00 2001 From: Jimmi HC Date: Fri, 1 Jun 2018 09:07:47 +0200 Subject: The arg iterator is now responsible for allocation instead of core.Clap --- src/extended.zig | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/extended.zig') diff --git a/src/extended.zig b/src/extended.zig index b94f6f5..31e6455 100644 --- a/src/extended.zig +++ b/src/extended.zig @@ -103,13 +103,13 @@ pub const Command = struct { return res; } - pub fn parse(comptime command: &const Command, allocator: &mem.Allocator, arg_iter: &core.ArgIterator) !command.Result { + pub fn parse(comptime command: &const Command, allocator: &mem.Allocator, arg_iter: var) !command.Result { const Parent = struct {}; var parent = Parent{}; return command.parseHelper(&parent, allocator, arg_iter); } - fn parseHelper(comptime command: &const Command, parent: var, allocator: &mem.Allocator, arg_iter: &core.ArgIterator) !command.Result { + fn parseHelper(comptime command: &const Command, parent: var, allocator: &mem.Allocator, arg_iter: var) !command.Result { const Result = struct { parent: @typeOf(parent), result: command.Result, @@ -159,11 +159,10 @@ pub const Command = struct { }; var pos: usize = 0; - var iter = core.Clap(usize).init(core_params, arg_iter, allocator); - defer iter.deinit(); + var clap = core.Clap(usize, @typeOf(arg_iter.*).Error).init(core_params, arg_iter); arg_loop: - while (try iter.next()) |arg| : (pos += 1) { + while (try clap.next()) |arg| : (pos += 1) { inline for(command.params) |param, i| { comptime const field = "result." ++ param.field; -- cgit v1.2.3