pub fn nextArg(self: *@This(), arg_index: ?usize) ?usize self: *@This()arg_index: ?usize230
231
232
233
234
235
236
237
238
239
240
241
242
243
244 pub fn nextArg(self: *@This(), arg_index: ?usize) ?usize {
const next_index = arg_index orelse init: {
const arg = self.next_arg;
self.next_arg += 1;
break :init arg;
};
if (next_index >= self.args_len) {
return null;
}
// Mark this argument as used
self.used_args |= @as(ArgSetType, 1) << @as(u5, @intCast(next_index));
return next_index;
}