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:
const dsargs = b.dependency("dsargs", .{
.target = target,
.optimize = optimize,
});
lib.root_module.addImport("dsargs", dsargs.module("dsargs"));const parser = @import("dsargs");
const ExampleArgs = struct {
pub const version = std.SemanticVersion.parse("0.1.0") catch unreachable;
pub const description = "Example application";
name: []const u8,
age: u32,
};
pub fn main() !void {
const args = try parser.argParser(ExampleArgs, std.heap.page_allocator);
defer parser.deinit_args(args, std.heap.page_allocator);
std.debug.print("age = {d}, name = {s}\n", .{ args.age, args.name });
}