...
1 package viper
2
3 import "github.com/spf13/pflag"
4
5
6
7 type FlagValueSet interface {
8 VisitAll(fn func(FlagValue))
9 }
10
11
12
13 type FlagValue interface {
14 HasChanged() bool
15 Name() string
16 ValueString() string
17 ValueType() string
18 }
19
20
21
22 type pflagValueSet struct {
23 flags *pflag.FlagSet
24 }
25
26
27 func (p pflagValueSet) VisitAll(fn func(flag FlagValue)) {
28 p.flags.VisitAll(func(flag *pflag.Flag) {
29 fn(pflagValue{flag})
30 })
31 }
32
33
34
35 type pflagValue struct {
36 flag *pflag.Flag
37 }
38
39
40 func (p pflagValue) HasChanged() bool {
41 return p.flag.Changed
42 }
43
44
45 func (p pflagValue) Name() string {
46 return p.flag.Name
47 }
48
49
50 func (p pflagValue) ValueString() string {
51 return p.flag.Value.String()
52 }
53
54
55 func (p pflagValue) ValueType() string {
56 return p.flag.Value.Type()
57 }
58
View as plain text