Skip to content

Seirea/dsargs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dead Simple Argparser

This arg parser is as simple as possible, its literally only 95 LOC. Written by @yavko.

Features

  • Writes to an input struct
  • Prints help, version, and description, nothing else

Todo

  • Add error for missing non-nullable argument types (right now it just zeroes everything not provided)

Installation

Add dependency to your build.zig.zon file:

zig fetch --save git+https://github.com/Seirea/dsargs.git

Add import to build.zig:

const dsargs = b.dependency("dsargs", .{
    .target = target,
    .optimize = optimize,
});
lib.root_module.addImport("dsargs", dsargs.module("dsargs"));

Example

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 });
}

About

A dead simple arg parser for zig, written by @yavko

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages