This arg parser is as simple as possible, its literally only 95 LOC. Written by @yavko.
- Writes to an input struct
- Prints help, version, and description, nothing else
- Add error for missing non-nullable argument types (right now it just zeroes everything not provided)
Add dependency to your build.zig.zon file:
zig fetch --save git+https://github.com/Seirea/dsargs.gitAdd import to build.zig:
constdsargs=b.dependency("dsargs", .{
.target=target,
.optimize=optimize,
});
lib.root_module.addImport("dsargs", dsargs.module("dsargs"));constparser=@import("dsargs");
constExampleArgs=struct {
pubconstversion=std.SemanticVersion.parse("0.1.0") catchunreachable;
pubconstdescription="Example application";
name: []constu8,
age: u32,
};
pubfnmain() !void {
constargs=tryparser.argParser(ExampleArgs, std.heap.page_allocator);
deferparser.deinit_args(args, std.heap.page_allocator);
std.debug.print("age = {d}, name = {s}\n", .{ args.age, args.name });
}