podman

Форк
0
57 строк · 1.3 Кб
1
package viper
2

3
import "github.com/spf13/pflag"
4

5
// FlagValueSet is an interface that users can implement
6
// to bind a set of flags to viper.
7
type FlagValueSet interface {
8
	VisitAll(fn func(FlagValue))
9
}
10

11
// FlagValue is an interface that users can implement
12
// to bind different flags to viper.
13
type FlagValue interface {
14
	HasChanged() bool
15
	Name() string
16
	ValueString() string
17
	ValueType() string
18
}
19

20
// pflagValueSet is a wrapper around *pflag.ValueSet
21
// that implements FlagValueSet.
22
type pflagValueSet struct {
23
	flags *pflag.FlagSet
24
}
25

26
// VisitAll iterates over all *pflag.Flag inside the *pflag.FlagSet.
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
// pflagValue is a wrapper aroung *pflag.flag
34
// that implements FlagValue
35
type pflagValue struct {
36
	flag *pflag.Flag
37
}
38

39
// HasChanged returns whether the flag has changes or not.
40
func (p pflagValue) HasChanged() bool {
41
	return p.flag.Changed
42
}
43

44
// Name returns the name of the flag.
45
func (p pflagValue) Name() string {
46
	return p.flag.Name
47
}
48

49
// ValueString returns the value of the flag as a string.
50
func (p pflagValue) ValueString() string {
51
	return p.flag.Value.String()
52
}
53

54
// ValueType returns the type of the flag as a string.
55
func (p pflagValue) ValueType() string {
56
	return p.flag.Value.Type()
57
}
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.