summaryrefslogtreecommitdiff
path: root/src/extended.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/extended.zig')
-rw-r--r--src/extended.zig9
1 files changed, 4 insertions, 5 deletions
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 {
103 return res; 103 return res;
104 } 104 }
105 105
106 pub fn parse(comptime command: &const Command, allocator: &mem.Allocator, arg_iter: &core.ArgIterator) !command.Result { 106 pub fn parse(comptime command: &const Command, allocator: &mem.Allocator, arg_iter: var) !command.Result {
107 const Parent = struct {}; 107 const Parent = struct {};
108 var parent = Parent{}; 108 var parent = Parent{};
109 return command.parseHelper(&parent, allocator, arg_iter); 109 return command.parseHelper(&parent, allocator, arg_iter);
110 } 110 }
111 111
112 fn parseHelper(comptime command: &const Command, parent: var, allocator: &mem.Allocator, arg_iter: &core.ArgIterator) !command.Result { 112 fn parseHelper(comptime command: &const Command, parent: var, allocator: &mem.Allocator, arg_iter: var) !command.Result {
113 const Result = struct { 113 const Result = struct {
114 parent: @typeOf(parent), 114 parent: @typeOf(parent),
115 result: command.Result, 115 result: command.Result,
@@ -159,11 +159,10 @@ pub const Command = struct {
159 }; 159 };
160 160
161 var pos: usize = 0; 161 var pos: usize = 0;
162 var iter = core.Clap(usize).init(core_params, arg_iter, allocator); 162 var clap = core.Clap(usize, @typeOf(arg_iter.*).Error).init(core_params, arg_iter);
163 defer iter.deinit();
164 163
165 arg_loop: 164 arg_loop:
166 while (try iter.next()) |arg| : (pos += 1) { 165 while (try clap.next()) |arg| : (pos += 1) {
167 inline for(command.params) |param, i| { 166 inline for(command.params) |param, i| {
168 comptime const field = "result." ++ param.field; 167 comptime const field = "result." ++ param.field;
169 168