forked from spf13/pflag
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
uint64.go
130 lines (106 loc) · 4.83 KB
/
uint64.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"
// -- uint64 Value
type uint64Value uint64
func newUint64Value(val uint64, p *uint64) *uint64Value {
*p = val
return (*uint64Value)(p)
}
func (i *uint64Value) Set(s string) error {
v, err := strconv.ParseUint(s, 0, 64)
*i = uint64Value(v)
return err
}
func (i *uint64Value) Type() string {
return "uint64"
}
func (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
func uint64Conv(sval string) (interface{}, error) {
v, err := strconv.ParseUint(sval, 0, 64)
if err != nil {
return 0, err
}
return uint64(v), nil
}
// GetUint64 return the uint64 value of a flag with the given name
func (f *FlagSet) GetUint64(name string) (uint64, error) {
val, err := f.getFlagType(name, "uint64", uint64Conv)
if err != nil {
return 0, err
}
return val.(uint64), nil
}
// Uint64Var defines a uint64 flag with specified name, default value, and usage string.
// The argument p points to a uint64 variable in which to store the value of the flag.
func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) {
f.Uint64VarP(p, name, "", value, usage)
}
// Uint64VarN is like Uint64VarP, but adds the name as shorthand (non-posix).
func (f *FlagSet) Uint64VarN(p *uint64, name, shorthand string, value uint64, usage string) {
f.VarN(newUint64Value(value, p), name, shorthand, usage)
}
// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.
func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {
f.VarP(newUint64Value(value, p), name, shorthand, usage)
}
// Uint64VarS is like Uint64Var, but accepts a shorthand letter that can be used after a single dash, alone.
func (f *FlagSet) Uint64VarS(p *uint64, name, shorthand string, value uint64, usage string) {
f.VarS(newUint64Value(value, p), name, shorthand, usage)
}
// Uint64Var defines a uint64 flag with specified name, default value, and usage string.
// The argument p points to a uint64 variable in which to store the value of the flag.
func Uint64Var(p *uint64, name string, value uint64, usage string) {
CommandLine.Uint64Var(p, name, value, usage)
}
// Uint64VarN is like Uint64VarP, but adds the name as shorthand (non-posix).
func Uint64VarN(p *uint64, name, shorthand string, value uint64, usage string) {
CommandLine.Uint64VarN(p, name, shorthand, value, usage)
}
// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.
func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {
CommandLine.Uint64VarP(p, name, shorthand, value, usage)
}
// Uint64VarS is like Uint64Var, but accepts a shorthand letter that can be used after a single dash, alone.
func Uint64VarS(p *uint64, name, shorthand string, value uint64, usage string) {
CommandLine.Uint64VarS(p, name, shorthand, value, usage)
}
// Uint64 defines a uint64 flag with specified name, default value, and usage string.
// The return value is the address of a uint64 variable that stores the value of the flag.
func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 {
return f.Uint64P(name, "", value, usage)
}
// Uint64N is like Uint64P, but adds the name as shorthand (non-posix).
func (f *FlagSet) Uint64N(name, shorthand string, value uint64, usage string) *uint64 {
p := new(uint64)
f.Uint64VarN(p, name, shorthand, value, usage)
return p
}
// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.
func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 {
p := new(uint64)
f.Uint64VarP(p, name, shorthand, value, usage)
return p
}
// Uint64S is like Uint64, but accepts a shorthand letter that can be used after a single dash, alone.
func (f *FlagSet) Uint64S(name, shorthand string, value uint64, usage string) *uint64 {
p := new(uint64)
f.Uint64VarS(p, name, shorthand, value, usage)
return p
}
// Uint64 defines a uint64 flag with specified name, default value, and usage string.
// The return value is the address of a uint64 variable that stores the value of the flag.
func Uint64(name string, value uint64, usage string) *uint64 {
return CommandLine.Uint64(name, value, usage)
}
// Uint64N is like Uint64P, but adds the name as shorthand (non-posix).
func Uint64N(name, shorthand string, value uint64, usage string) *uint64 {
return CommandLine.Uint64N(name, shorthand, value, usage)
}
// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.
func Uint64P(name, shorthand string, value uint64, usage string) *uint64 {
return CommandLine.Uint64P(name, shorthand, value, usage)
}
// Uint64S is like Uint64, but accepts a shorthand letter that can be used after a single dash, alone.
func Uint64S(name, shorthand string, value uint64, usage string) *uint64 {
return CommandLine.Uint64S(name, shorthand, value, usage)
}