From f968d56d96989d1c74664449f509d7d1b2e3010f Mon Sep 17 00:00:00 2001 From: Jimmi Holst Christensen Date: Wed, 14 Nov 2018 14:25:42 +0100 Subject: Added pub flag/option/positional init funcs to Param --- src/index.zig | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/index.zig') diff --git a/src/index.zig b/src/index.zig index dde4748..5900424 100644 --- a/src/index.zig +++ b/src/index.zig @@ -23,14 +23,6 @@ pub const Names = struct { /// '--' prefix long: ?[]const u8, - /// Initializes no names - pub fn positional() Names { - return Names{ - .short = null, - .long = null, - }; - } - /// Initializes a short name pub fn short(s: u8) Names { return Names{ @@ -87,7 +79,19 @@ pub fn Param(comptime Id: type) type { takes_value: bool, names: Names, - pub fn init(id: Id, takes_value: bool, names: Names) @This() { + pub fn flag(id: Id, names: Names) @This() { + return init(id, false, names); + } + + pub fn option(id: Id, names: Names) @This() { + return init(id, true, names); + } + + pub fn positional(id: Id) @This() { + return init(id, true, Names{ .short = null, .long = null }); + } + + fn init(id: Id, takes_value: bool, names: Names) @This() { // Assert, that if the param have no name, then it has to take // a value. debug.assert( -- cgit v1.2.3