Commit 38b31c65 authored by Matt Bell's avatar Matt Bell Committed by Juan Batiz-Benet

commands: Added Option helper constructors

parent 3e30093c
......@@ -18,11 +18,43 @@ type Option struct {
Type reflect.Kind // value must be this type
Description string // a short string to describe this option
// TODO: add more features(?):
// MAYBE_TODO: add more features(?):
//Default interface{} // the default value (ignored if `Required` is true)
//Required bool // whether or not the option must be provided
}
// constructor helper functions
func NewOption(kind reflect.Kind, names ...string) Option {
if len(names) < 2 {
panic("Options require at least two string values (name and description)")
}
desc := names[len(names)-1]
names = names[:len(names)-2]
return Option{
Names: names,
Type: kind,
Description: desc,
}
}
func BoolOption(names ...string) Option {
return NewOption(Bool, names...)
}
func IntOption(names ...string) Option {
return NewOption(Int, names...)
}
func UintOption(names ...string) Option {
return NewOption(Uint, names...)
}
func FloatOption(names ...string) Option {
return NewOption(Float, names...)
}
func StringOption(names ...string) Option {
return NewOption(String, names...)
}
// Flag names
const (
EncShort = "enc"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment