summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--README.md42
1 files changed, 18 insertions, 24 deletions
diff --git a/README.md b/README.md
index 92de659..8081d84 100644
--- a/README.md
+++ b/README.md
@@ -15,23 +15,21 @@ A simple and easy to use command line argument parser library for Zig.
15 15
16### `StreamingClap` 16### `StreamingClap`
17 17
18The `StreamingClap` is base of all the other parsers. It's a streaming parser that uses an 18The `StreamingClap` is the base of all the other parsers. It's a streaming parser that uses an
19`args.Iterator` to provide it with arguments lazily. 19`args.Iterator` to provide it with arguments lazily.
20 20
21```rust 21```rust
22const params = []clap.Param(u8){ 22const params = []clap.Param(u8){
23 clap.Param(void).flag('h', false, clap.Names.both("help")), 23 clap.Param(u8).flag('h', clap.Names.both("help")),
24 clap.Param(void).option('n', true, clap.Names.both("number")), 24 clap.Param(u8).option('n', clap.Names.both("number")),
25 clap.Param(void).positional('f'), 25 clap.Param(u8).positional('f'),
26}; 26};
27 27
28var os_iter = clap.args.OsIterator.init(allocator); 28var iter = clap.args.OsIterator.init(allocator);
29const iter = &os_iter.iter; 29defer iter.deinit();
30defer os_iter.deinit();
31
32const exe = try iter.next(); 30const exe = try iter.next();
33 31
34var parser = clap.StreamingClap(u8, clap.args.OsIterator.Error).init(params, iter); 32var parser = clap.StreamingClap(u8, clap.args.OsIterator).init(params, &iter);
35 33
36while (try parser.next()) |arg| { 34while (try parser.next()) |arg| {
37 switch (arg.param.id) { 35 switch (arg.param.id) {
@@ -40,7 +38,7 @@ while (try parser.next()) |arg| {
40 'f' => debug.warn("{}\n", arg.value.?), 38 'f' => debug.warn("{}\n", arg.value.?),
41 else => unreachable, 39 else => unreachable,
42 } 40 }
43 } 41}
44``` 42```
45 43
46### `ComptimeClap` 44### `ComptimeClap`
@@ -50,18 +48,16 @@ them available through three functions (`flag`, `option`, `positionals`).
50 48
51```rust 49```rust
52const params = comptime []clap.Param(void){ 50const params = comptime []clap.Param(void){
53 clap.Param(void).flag({}, false, clap.Names.both("help")), 51 clap.Param(void).flag({}, clap.Names.both("help")),
54 clap.Param(void).option({}, true, clap.Names.both("number")), 52 clap.Param(void).option({}, clap.Names.both("number")),
55 clap.Param(void).positional({}), 53 clap.Param(void).positional({}),
56}; 54};
57 55
58var os_iter = clap.args.OsIterator.init(allocator); 56var iter = clap.args.OsIterator.init(allocator);
59const iter = &os_iter.iter; 57defer iter.deinit();
60defer os_iter.deinit();
61
62const exe = try iter.next(); 58const exe = try iter.next();
63 59
64var args = try clap.ComptimeClap(void, params).parse(allocator, clap.args.OsIterator.Error, iter); 60var args = try clap.ComptimeClap(void, params).parse(allocator, clap.args.OsIterator, &iter);
65defer args.deinit(); 61defer args.deinit();
66 62
67if (args.flag("--help")) 63if (args.flag("--help"))
@@ -78,16 +74,14 @@ program can take:
78 74
79```rust 75```rust
80const params = comptime []clap.Param(void){ 76const params = comptime []clap.Param(void){
81 clap.Param(void).init({}, false, clap.Names.both("help")), 77 clap.Param(void).flag({}, clap.Names.both("help")),
82}; 78};
83 79
84var os_iter = clap.args.OsIterator.init(allocator); 80var iter = clap.args.OsIterator.init(allocator);
85const iter = &os_iter.iter; 81defer iter.deinit();
86defer os_iter.deinit();
87
88const exe = try iter.next(); 82const exe = try iter.next();
89 83
90var args = try clap.ComptimeClap(params).parse(allocator, clap.args.OsIterator.Error, iter); 84var args = try clap.ComptimeClap(void, params).parse(allocator, clap.args.OsIterator, &iter);
91defer args.deinit(); 85defer args.deinit();
92 86
93if (args.flag("--helps")) 87if (args.flag("--helps"))
@@ -106,7 +100,7 @@ zig-clap/example/comptime-clap.zig:41:18: note: called from here
106 ^ 100 ^
107``` 101```
108 102
109Ofc, this limits you to use only parameters that are comptime known. 103Ofc, this limits you to parameters that are comptime known.
110 104
111### `help` 105### `help`
112 106