forked from spf13/pflag
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
float64.go
126 lines (102 loc) · 4.9 KB
/
float64.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
package pflag
import "strconv"
// -- float64 Value
type float64Value float64
func newFloat64Value(val float64, p *float64) *float64Value {
*p = val
return (*float64Value)(p)
}
func (f *float64Value) Set(s string) error {
v, err := strconv.ParseFloat(s, 64)
*f = float64Value(v)
return err
}
func (f *float64Value) Type() string {
return "float64"
}
func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) }
func float64Conv(sval string) (interface{}, error) {
return strconv.ParseFloat(sval, 64)
}
// GetFloat64 return the float64 value of a flag with the given name
func (f *FlagSet) GetFloat64(name string) (float64, error) {
val, err := f.getFlagType(name, "float64", float64Conv)
if err != nil {
return 0, err
}
return val.(float64), nil
}
// Float64Var defines a float64 flag with specified name, default value, and usage string.
// The argument p points to a float64 variable in which to store the value of the flag.
func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) {
f.Float64VarP(p, name, "", value, usage)
}
// Float64VarN is like Float64VarP, but adds the name as shorthand (non-posix).
func (f *FlagSet) Float64VarN(p *float64, name, shorthand string, value float64, usage string) {
f.VarN(newFloat64Value(value, p), name, shorthand, usage)
}
// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
f.VarP(newFloat64Value(value, p), name, shorthand, usage)
}
// Float64VarS is like Float64Var, but accepts a shorthand letter that can be used after a single dash, alone.
func (f *FlagSet) Float64VarS(p *float64, name, shorthand string, value float64, usage string) {
f.VarS(newFloat64Value(value, p), name, shorthand, usage)
}
// Float64Var defines a float64 flag with specified name, default value, and usage string.
// The argument p points to a float64 variable in which to store the value of the flag.
func Float64Var(p *float64, name string, value float64, usage string) {
CommandLine.Float64Var(p, name, value, usage)
}
// Float64VarN is like Float64VarP, but adds the name as shorthand (non-posix).
func Float64VarN(p *float64, name, shorthand string, value float64, usage string) {
CommandLine.Float64VarN(p, name, shorthand, value, usage)
}
// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
func Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
CommandLine.Float64VarP(p, name, shorthand, value, usage)
}
// Float64VarS is like Float64Var, but accepts a shorthand letter that can be used after a single dash, alone.
func Float64VarS(p *float64, name, shorthand string, value float64, usage string) {
CommandLine.Float64VarS(p, name, shorthand, value, usage)
}
// Float64 defines a float64 flag with specified name, default value, and usage string.
// The return value is the address of a float64 variable that stores the value of the flag.
func (f *FlagSet) Float64(name string, value float64, usage string) *float64 {
return f.Float64P(name, "", value, usage)
}
// Float64N is like Float64P, but adds the name as shorthand (non-posix).
func (f *FlagSet) Float64N(name, shorthand string, value float64, usage string) *float64 {
p := new(float64)
f.Float64VarN(p, name, shorthand, value, usage)
return p
}
// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 {
p := new(float64)
f.Float64VarP(p, name, shorthand, value, usage)
return p
}
// Float64S is like Float64, but accepts a shorthand letter that can be used after a single dash, alone.
func (f *FlagSet) Float64S(name, shorthand string, value float64, usage string) *float64 {
p := new(float64)
f.Float64VarS(p, name, shorthand, value, usage)
return p
}
// Float64 defines a float64 flag with specified name, default value, and usage string.
// The return value is the address of a float64 variable that stores the value of the flag.
func Float64(name string, value float64, usage string) *float64 {
return CommandLine.Float64(name, value, usage)
}
// Float64N is like Float64P, but adds the name as shorthand (non-posix).
func Float64N(name, shorthand string, value float64, usage string) *float64 {
return CommandLine.Float64N(name, shorthand, value, usage)
}
// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
func Float64P(name, shorthand string, value float64, usage string) *float64 {
return CommandLine.Float64P(name, shorthand, value, usage)
}
// Float64S is like Float64, but accepts a shorthand letter that can be used after a single dash, alone.
func Float64S(name, shorthand string, value float64, usage string) *float64 {
return CommandLine.Float64S(name, shorthand, value, usage)
}