diff options
| -rw-r--r-- | README.md | 10 | ||||
| -rw-r--r-- | clap.zig | 19 | ||||
| -rw-r--r-- | example/help.zig | 2 | ||||
| -rw-r--r-- | example/simple-ex.zig | 2 | ||||
| -rw-r--r-- | example/simple.zig | 2 | ||||
| -rw-r--r-- | example/subcommands.zig | 2 | ||||
| -rw-r--r-- | example/usage.zig | 2 |
7 files changed, 18 insertions, 21 deletions
| @@ -55,7 +55,7 @@ The simplest way to use this library is to just call the `clap.parse` function. | |||
| 55 | 55 | ||
| 56 | ```zig | 56 | ```zig |
| 57 | pub fn main() !void { | 57 | pub fn main() !void { |
| 58 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 58 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 59 | defer _ = gpa.deinit(); | 59 | defer _ = gpa.deinit(); |
| 60 | 60 | ||
| 61 | // First we specify what parameters our program can take. | 61 | // First we specify what parameters our program can take. |
| @@ -109,7 +109,7 @@ if you want some other mapping. | |||
| 109 | 109 | ||
| 110 | ```zig | 110 | ```zig |
| 111 | pub fn main() !void { | 111 | pub fn main() !void { |
| 112 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 112 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 113 | defer _ = gpa.deinit(); | 113 | defer _ = gpa.deinit(); |
| 114 | 114 | ||
| 115 | // First we specify what parameters our program can take. | 115 | // First we specify what parameters our program can take. |
| @@ -190,7 +190,7 @@ const main_params = clap.parseParamsComptime( | |||
| 190 | const MainArgs = clap.ResultEx(clap.Help, &main_params, main_parsers); | 190 | const MainArgs = clap.ResultEx(clap.Help, &main_params, main_parsers); |
| 191 | 191 | ||
| 192 | pub fn main() !void { | 192 | pub fn main() !void { |
| 193 | var gpa_state = std.heap.GeneralPurposeAllocator(.{}){}; | 193 | var gpa_state = std.heap.DebugAllocator(.{}){}; |
| 194 | const gpa = gpa_state.allocator(); | 194 | const gpa = gpa_state.allocator(); |
| 195 | defer _ = gpa_state.deinit(); | 195 | defer _ = gpa_state.deinit(); |
| 196 | 196 | ||
| @@ -347,7 +347,7 @@ is passed to `help` to control how the help message is printed. | |||
| 347 | 347 | ||
| 348 | ```zig | 348 | ```zig |
| 349 | pub fn main() !void { | 349 | pub fn main() !void { |
| 350 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 350 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 351 | defer _ = gpa.deinit(); | 351 | defer _ = gpa.deinit(); |
| 352 | 352 | ||
| 353 | const params = comptime clap.parseParamsComptime( | 353 | const params = comptime clap.parseParamsComptime( |
| @@ -389,7 +389,7 @@ $ zig-out/bin/help --help | |||
| 389 | 389 | ||
| 390 | ```zig | 390 | ```zig |
| 391 | pub fn main() !void { | 391 | pub fn main() !void { |
| 392 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 392 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 393 | defer _ = gpa.deinit(); | 393 | defer _ = gpa.deinit(); |
| 394 | 394 | ||
| 395 | const params = comptime clap.parseParamsComptime( | 395 | const params = comptime clap.parseParamsComptime( |
| @@ -84,11 +84,11 @@ pub fn parseParams(allocator: std.mem.Allocator, str: []const u8) ![]Param(Help) | |||
| 84 | /// Takes a string and parses it into many Param(Help). Returned is a newly allocated slice | 84 | /// Takes a string and parses it into many Param(Help). Returned is a newly allocated slice |
| 85 | /// containing all the parsed params. The caller is responsible for freeing the slice. | 85 | /// containing all the parsed params. The caller is responsible for freeing the slice. |
| 86 | pub fn parseParamsEx(allocator: std.mem.Allocator, str: []const u8, end: *usize) ![]Param(Help) { | 86 | pub fn parseParamsEx(allocator: std.mem.Allocator, str: []const u8, end: *usize) ![]Param(Help) { |
| 87 | var list = std.ArrayList(Param(Help)).init(allocator); | 87 | var list = std.ArrayList(Param(Help)){}; |
| 88 | errdefer list.deinit(); | 88 | errdefer list.deinit(allocator); |
| 89 | 89 | ||
| 90 | try parseParamsIntoArrayListEx(&list, str, end); | 90 | try parseParamsIntoArrayListEx(allocator, &list, str, end); |
| 91 | return try list.toOwnedSlice(); | 91 | return try list.toOwnedSlice(allocator); |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | /// Takes a string and parses it into many Param(Help) at comptime. Returned is an array of | 94 | /// Takes a string and parses it into many Param(Help) at comptime. Returned is an array of |
| @@ -131,9 +131,7 @@ fn countParams(str: []const u8) usize { | |||
| 131 | /// is returned, containing all the parameters parsed. This function will fail if the input slice | 131 | /// is returned, containing all the parameters parsed. This function will fail if the input slice |
| 132 | /// is to small. | 132 | /// is to small. |
| 133 | pub fn parseParamsIntoSlice(slice: []Param(Help), str: []const u8) ![]Param(Help) { | 133 | pub fn parseParamsIntoSlice(slice: []Param(Help), str: []const u8) ![]Param(Help) { |
| 134 | var null_alloc = std.heap.FixedBufferAllocator.init(""); | ||
| 135 | var list = std.ArrayList(Param(Help)){ | 134 | var list = std.ArrayList(Param(Help)){ |
| 136 | .allocator = null_alloc.allocator(), | ||
| 137 | .items = slice[0..0], | 135 | .items = slice[0..0], |
| 138 | .capacity = slice.len, | 136 | .capacity = slice.len, |
| 139 | }; | 137 | }; |
| @@ -146,14 +144,13 @@ pub fn parseParamsIntoSlice(slice: []Param(Help), str: []const u8) ![]Param(Help | |||
| 146 | /// is returned, containing all the parameters parsed. This function will fail if the input slice | 144 | /// is returned, containing all the parameters parsed. This function will fail if the input slice |
| 147 | /// is to small. | 145 | /// is to small. |
| 148 | pub fn parseParamsIntoSliceEx(slice: []Param(Help), str: []const u8, end: *usize) ![]Param(Help) { | 146 | pub fn parseParamsIntoSliceEx(slice: []Param(Help), str: []const u8, end: *usize) ![]Param(Help) { |
| 149 | var null_alloc = std.heap.FixedBufferAllocator.init(""); | 147 | var null_allocator = std.heap.FixedBufferAllocator.init(""); |
| 150 | var list = std.ArrayList(Param(Help)){ | 148 | var list = std.ArrayList(Param(Help)){ |
| 151 | .allocator = null_alloc.allocator(), | ||
| 152 | .items = slice[0..0], | 149 | .items = slice[0..0], |
| 153 | .capacity = slice.len, | 150 | .capacity = slice.len, |
| 154 | }; | 151 | }; |
| 155 | 152 | ||
| 156 | try parseParamsIntoArrayListEx(&list, str, end); | 153 | try parseParamsIntoArrayListEx(null_allocator.allocator(), &list, str, end); |
| 157 | return list.items; | 154 | return list.items; |
| 158 | } | 155 | } |
| 159 | 156 | ||
| @@ -164,13 +161,13 @@ pub fn parseParamsIntoArrayList(list: *std.ArrayList(Param(Help)), str: []const | |||
| 164 | } | 161 | } |
| 165 | 162 | ||
| 166 | /// Takes a string and parses it into many Param(Help), which are appended onto `list`. | 163 | /// Takes a string and parses it into many Param(Help), which are appended onto `list`. |
| 167 | pub fn parseParamsIntoArrayListEx(list: *std.ArrayList(Param(Help)), str: []const u8, end: *usize) !void { | 164 | pub fn parseParamsIntoArrayListEx(allocator: std.mem.Allocator, list: *std.ArrayList(Param(Help)), str: []const u8, end: *usize) !void { |
| 168 | var i: usize = 0; | 165 | var i: usize = 0; |
| 169 | while (i != str.len) { | 166 | while (i != str.len) { |
| 170 | var end_of_this: usize = undefined; | 167 | var end_of_this: usize = undefined; |
| 171 | errdefer end.* = i + end_of_this; | 168 | errdefer end.* = i + end_of_this; |
| 172 | 169 | ||
| 173 | try list.append(try parseParamEx(str[i..], &end_of_this)); | 170 | try list.append(allocator, try parseParamEx(str[i..], &end_of_this)); |
| 174 | i += end_of_this; | 171 | i += end_of_this; |
| 175 | } | 172 | } |
| 176 | 173 | ||
diff --git a/example/help.zig b/example/help.zig index 5c88d83..d8e8f12 100644 --- a/example/help.zig +++ b/example/help.zig | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | pub fn main() !void { | 1 | pub fn main() !void { |
| 2 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 2 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 3 | defer _ = gpa.deinit(); | 3 | defer _ = gpa.deinit(); |
| 4 | 4 | ||
| 5 | const params = comptime clap.parseParamsComptime( | 5 | const params = comptime clap.parseParamsComptime( |
diff --git a/example/simple-ex.zig b/example/simple-ex.zig index 77d8d09..912c75b 100644 --- a/example/simple-ex.zig +++ b/example/simple-ex.zig | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | pub fn main() !void { | 1 | pub fn main() !void { |
| 2 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 2 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 3 | defer _ = gpa.deinit(); | 3 | defer _ = gpa.deinit(); |
| 4 | 4 | ||
| 5 | // First we specify what parameters our program can take. | 5 | // First we specify what parameters our program can take. |
diff --git a/example/simple.zig b/example/simple.zig index 1834396..abcf448 100644 --- a/example/simple.zig +++ b/example/simple.zig | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | pub fn main() !void { | 1 | pub fn main() !void { |
| 2 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 2 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 3 | defer _ = gpa.deinit(); | 3 | defer _ = gpa.deinit(); |
| 4 | 4 | ||
| 5 | // First we specify what parameters our program can take. | 5 | // First we specify what parameters our program can take. |
diff --git a/example/subcommands.zig b/example/subcommands.zig index 7d9f5f1..5c3e7c7 100644 --- a/example/subcommands.zig +++ b/example/subcommands.zig | |||
| @@ -20,7 +20,7 @@ const main_params = clap.parseParamsComptime( | |||
| 20 | const MainArgs = clap.ResultEx(clap.Help, &main_params, main_parsers); | 20 | const MainArgs = clap.ResultEx(clap.Help, &main_params, main_parsers); |
| 21 | 21 | ||
| 22 | pub fn main() !void { | 22 | pub fn main() !void { |
| 23 | var gpa_state = std.heap.GeneralPurposeAllocator(.{}){}; | 23 | var gpa_state = std.heap.DebugAllocator(.{}){}; |
| 24 | const gpa = gpa_state.allocator(); | 24 | const gpa = gpa_state.allocator(); |
| 25 | defer _ = gpa_state.deinit(); | 25 | defer _ = gpa_state.deinit(); |
| 26 | 26 | ||
diff --git a/example/usage.zig b/example/usage.zig index b7308f5..aab9cb6 100644 --- a/example/usage.zig +++ b/example/usage.zig | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | pub fn main() !void { | 1 | pub fn main() !void { |
| 2 | var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | 2 | var gpa = std.heap.DebugAllocator(.{}){}; |
| 3 | defer _ = gpa.deinit(); | 3 | defer _ = gpa.deinit(); |
| 4 | 4 | ||
| 5 | const params = comptime clap.parseParamsComptime( | 5 | const params = comptime clap.parseParamsComptime( |