forked from spf13/pflag
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
uint.go
130 lines (106 loc) · 4.59 KB
/
uint.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package pflag
import "strconv"
// -- uint Value
type uintValue uint
func newUintValue(val uint, p *uint) *uintValue {
*p = val
return (*uintValue)(p)
}
func (i *uintValue) Set(s string) error {
v, err := strconv.ParseUint(s, 0, 64)
*i = uintValue(v)
return err
}
func (i *uintValue) Type() string {
return "uint"
}
func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) }
func uintConv(sval string) (interface{}, error) {
v, err := strconv.ParseUint(sval, 0, 0)
if err != nil {
return 0, err
}
return uint(v), nil
}
// GetUint return the uint value of a flag with the given name
func (f *FlagSet) GetUint(name string) (uint, error) {
val, err := f.getFlagType(name, "uint", uintConv)
if err != nil {
return 0, err
}
return val.(uint), nil
}
// UintVar defines a uint flag with specified name, default value, and usage string.
// The argument p points to a uint variable in which to store the value of the flag.
func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {
f.UintVarP(p, name, "", value, usage)
}
// UintVarN is like UintVarP, but adds the name as shorthand (non-posix).
func (f *FlagSet) UintVarN(p *uint, name, shorthand string, value uint, usage string) {
f.VarN(newUintValue(value, p), name, shorthand, usage)
}
// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) {
f.VarP(newUintValue(value, p), name, shorthand, usage)
}
// UintVarS is like UintVar, but accepts a shorthand letter that can be used after a single dash, alone.
func (f *FlagSet) UintVarS(p *uint, name, shorthand string, value uint, usage string) {
f.VarS(newUintValue(value, p), name, shorthand, usage)
}
// UintVar defines a uint flag with specified name, default value, and usage string.
// The argument p points to a uint variable in which to store the value of the flag.
func UintVar(p *uint, name string, value uint, usage string) {
CommandLine.UintVar(p, name, value, usage)
}
// UintVarN is like UintVarP, but adds the name as shorthand (non-posix).
func UintVarN(p *uint, name, shorthand string, value uint, usage string) {
CommandLine.UintVarN(p, name, shorthand, value, usage)
}
// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
func UintVarP(p *uint, name, shorthand string, value uint, usage string) {
CommandLine.UintVarP(p, name, shorthand, value, usage)
}
// UintVarS is like UintVar, but accepts a shorthand letter that can be used after a single dash, alone.
func UintVarS(p *uint, name, shorthand string, value uint, usage string) {
CommandLine.UintVarS(p, name, shorthand, value, usage)
}
// Uint defines a uint flag with specified name, default value, and usage string.
// The return value is the address of a uint variable that stores the value of the flag.
func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
return f.UintP(name, "", value, usage)
}
// UintN is like UintP, but adds the name as shorthand (non-posix).
func (f *FlagSet) UintN(name, shorthand string, value uint, usage string) *uint {
p := new(uint)
f.UintVarN(p, name, shorthand, value, usage)
return p
}
// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
func (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint {
p := new(uint)
f.UintVarP(p, name, shorthand, value, usage)
return p
}
// UintS is like Uint, but accepts a shorthand letter that can be used after a single dash, alone.
func (f *FlagSet) UintS(name, shorthand string, value uint, usage string) *uint {
p := new(uint)
f.UintVarS(p, name, shorthand, value, usage)
return p
}
// Uint defines a uint flag with specified name, default value, and usage string.
// The return value is the address of a uint variable that stores the value of the flag.
func Uint(name string, value uint, usage string) *uint {
return CommandLine.Uint(name, value, usage)
}
// UintN is like UintP, but adds the name as shorthand (non-posix).
func UintN(name, shorthand string, value uint, usage string) *uint {
return CommandLine.UintN(name, shorthand, value, usage)
}
// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
func UintP(name, shorthand string, value uint, usage string) *uint {
return CommandLine.UintP(name, shorthand, value, usage)
}
// UintS is like Uint, but accepts a shorthand letter that can be used after a single dash, alone.
func UintS(name, shorthand string, value uint, usage string) *uint {
return CommandLine.UintS(name, shorthand, value, usage)
}