summaryrefslogtreecommitdiff
path: root/clap/streaming.zig
diff options
context:
space:
mode:
authorGravatar Jimmi Holst Christensen2022-01-31 17:11:15 +0100
committerGravatar Jimmi Holst Christensen2022-01-31 17:11:15 +0100
commit7188a9fc85f6aa0f71a4cb7966f8b0a044f29e02 (patch)
tree0363b15fb5393c7ca46f60325eee93c13f9c76f7 /clap/streaming.zig
parentRelicense to MIT (diff)
downloadzig-clap-7188a9fc85f6aa0f71a4cb7966f8b0a044f29e02.tar.gz
zig-clap-7188a9fc85f6aa0f71a4cb7966f8b0a044f29e02.tar.xz
zig-clap-7188a9fc85f6aa0f71a4cb7966f8b0a044f29e02.zip
Refactor the ArgIterator interface
They now follow the interface provided by the standard library. This now means that we no longer needs `args.OsIterator` as that the one from `std` can now be used directly. Also remove `args.ShellIterator` as a simular iterator exists in `std` called `ArgIteratorGeneral`.
Diffstat (limited to '')
-rw-r--r--clap/streaming.zig10
1 files changed, 5 insertions, 5 deletions
diff --git a/clap/streaming.zig b/clap/streaming.zig
index 3f24aaa..8eca51a 100644
--- a/clap/streaming.zig
+++ b/clap/streaming.zig
@@ -49,7 +49,7 @@ pub fn StreamingClap(comptime Id: type, comptime ArgIterator: type) type {
49 .chaining => |state| return try parser.chaining(state), 49 .chaining => |state| return try parser.chaining(state),
50 .rest_are_positional => { 50 .rest_are_positional => {
51 const param = parser.positionalParam() orelse unreachable; 51 const param = parser.positionalParam() orelse unreachable;
52 const value = (try parser.iter.next()) orelse return null; 52 const value = parser.iter.next() orelse return null;
53 return Arg(Id){ .param = param, .value = value }; 53 return Arg(Id){ .param = param, .value = value };
54 }, 54 },
55 } 55 }
@@ -80,7 +80,7 @@ pub fn StreamingClap(comptime Id: type, comptime ArgIterator: type) type {
80 if (maybe_value) |v| 80 if (maybe_value) |v|
81 break :blk v; 81 break :blk v;
82 82
83 break :blk (try parser.iter.next()) orelse 83 break :blk parser.iter.next() orelse
84 return parser.err(arg, .{ .long = name }, error.MissingValue); 84 return parser.err(arg, .{ .long = name }, error.MissingValue);
85 }; 85 };
86 86
@@ -99,7 +99,7 @@ pub fn StreamingClap(comptime Id: type, comptime ArgIterator: type) type {
99 // arguments. 99 // arguments.
100 if (mem.eql(u8, arg, "--")) { 100 if (mem.eql(u8, arg, "--")) {
101 parser.state = .rest_are_positional; 101 parser.state = .rest_are_positional;
102 const value = (try parser.iter.next()) orelse return null; 102 const value = parser.iter.next() orelse return null;
103 return Arg(Id){ .param = param, .value = value }; 103 return Arg(Id){ .param = param, .value = value };
104 } 104 }
105 105
@@ -142,7 +142,7 @@ pub fn StreamingClap(comptime Id: type, comptime ArgIterator: type) type {
142 } 142 }
143 143
144 if (arg.len <= next_index) { 144 if (arg.len <= next_index) {
145 const value = (try parser.iter.next()) orelse 145 const value = parser.iter.next() orelse
146 return parser.err(arg, .{ .short = short }, error.MissingValue); 146 return parser.err(arg, .{ .short = short }, error.MissingValue);
147 147
148 return Arg(Id){ .param = param, .value = value }; 148 return Arg(Id){ .param = param, .value = value };
@@ -184,7 +184,7 @@ pub fn StreamingClap(comptime Id: type, comptime ArgIterator: type) type {
184 }; 184 };
185 185
186 fn parseNextArg(parser: *@This()) !?ArgInfo { 186 fn parseNextArg(parser: *@This()) !?ArgInfo {
187 const full_arg = (try parser.iter.next()) orelse return null; 187 const full_arg = parser.iter.next() orelse return null;
188 if (mem.eql(u8, full_arg, "--") or mem.eql(u8, full_arg, "-")) 188 if (mem.eql(u8, full_arg, "--") or mem.eql(u8, full_arg, "-"))
189 return ArgInfo{ .arg = full_arg, .kind = .positional }; 189 return ArgInfo{ .arg = full_arg, .kind = .positional };
190 if (mem.startsWith(u8, full_arg, "--")) 190 if (mem.startsWith(u8, full_arg, "--"))