diff options
| -rw-r--r-- | test.zig | 29 |
1 files changed, 29 insertions, 0 deletions
| @@ -196,3 +196,32 @@ test "clap: all" { | |||
| 196 | }, | 196 | }, |
| 197 | ); | 197 | ); |
| 198 | } | 198 | } |
| 199 | |||
| 200 | test "clap.Example" { | ||
| 201 | const program_args = [][]const u8{ | ||
| 202 | "-h", "--help", | ||
| 203 | "-v", "--version", | ||
| 204 | "file.zig", | ||
| 205 | }; | ||
| 206 | |||
| 207 | const warn = @import("std").debug.warn; | ||
| 208 | const c = @import("clap.zig"); | ||
| 209 | |||
| 210 | const params = []c.Param(u8){ | ||
| 211 | c.Param(u8).init('h', false, c.Names.prefix("help")), | ||
| 212 | c.Param(u8).init('v', false, c.Names.prefix("version")), | ||
| 213 | c.Param(u8).init('f', true, c.Names.none()), | ||
| 214 | }; | ||
| 215 | |||
| 216 | var iter = &c.ArgSliceIterator.init(program_args).iter; | ||
| 217 | var parser = c.Clap(u8, c.ArgSliceIterator.Error).init(params, iter); | ||
| 218 | |||
| 219 | while (parser.next() catch unreachable) |arg| { | ||
| 220 | switch (arg.param.id) { | ||
| 221 | 'h' => warn("Help!\n"), | ||
| 222 | 'v' => warn("1.1.1\n"), | ||
| 223 | 'f' => warn("{}\n", arg.value.?), | ||
| 224 | else => unreachable, | ||
| 225 | } | ||
| 226 | } | ||
| 227 | } \ No newline at end of file | ||