@@ -18,152 +18,51 @@ package configmap
18
18
19
19
import (
20
20
"fmt"
21
- "strconv"
22
21
"strings"
23
22
"time"
24
23
25
24
"k8s.io/apimachinery/pkg/api/resource"
26
25
"k8s.io/apimachinery/pkg/api/validation"
27
26
"k8s.io/apimachinery/pkg/types"
28
27
"k8s.io/apimachinery/pkg/util/sets"
28
+ "knative.dev/pkg/configmap/parser"
29
29
)
30
30
31
31
// ParseFunc is a function taking ConfigMap data and applying a parse operation to it.
32
- type ParseFunc func ( map [ string ] string ) error
32
+ type ParseFunc = parser. ParseFunc
33
33
34
34
// AsString passes the value at key through into the target, if it exists.
35
- func AsString (key string , target * string ) ParseFunc {
36
- return func (data map [string ]string ) error {
37
- if raw , ok := data [key ]; ok {
38
- * target = raw
39
- }
40
- return nil
41
- }
42
- }
35
+ var AsString = parser .As [string ]
43
36
44
37
// AsBool parses the value at key as a boolean into the target, if it exists.
45
- func AsBool (key string , target * bool ) ParseFunc {
46
- return func (data map [string ]string ) error {
47
- if raw , ok := data [key ]; ok {
48
- val , err := strconv .ParseBool (raw )
49
- * target = val // If err != nil — this is always false.
50
- return err
51
- }
52
- return nil
53
- }
54
- }
38
+ var AsBool = parser .As [bool ]
55
39
56
40
// AsInt16 parses the value at key as an int16 into the target, if it exists.
57
- func AsInt16 (key string , target * int16 ) ParseFunc {
58
- return func (data map [string ]string ) error {
59
- if raw , ok := data [key ]; ok {
60
- val , err := strconv .ParseInt (raw , 10 , 16 )
61
- if err != nil {
62
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
63
- }
64
- * target = int16 (val )
65
- }
66
- return nil
67
- }
68
- }
41
+ var AsInt16 = parser .As [int16 ]
69
42
70
43
// AsInt32 parses the value at key as an int32 into the target, if it exists.
71
- func AsInt32 (key string , target * int32 ) ParseFunc {
72
- return func (data map [string ]string ) error {
73
- if raw , ok := data [key ]; ok {
74
- val , err := strconv .ParseInt (raw , 10 , 32 )
75
- if err != nil {
76
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
77
- }
78
- * target = int32 (val )
79
- }
80
- return nil
81
- }
82
- }
44
+ var AsInt32 = parser .As [int32 ]
83
45
84
46
// AsInt64 parses the value at key as an int64 into the target, if it exists.
85
- func AsInt64 (key string , target * int64 ) ParseFunc {
86
- return func (data map [string ]string ) error {
87
- if raw , ok := data [key ]; ok {
88
- val , err := strconv .ParseInt (raw , 10 , 64 )
89
- if err != nil {
90
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
91
- }
92
- * target = val
93
- }
94
- return nil
95
- }
96
- }
47
+ var AsInt64 = parser .As [int64 ]
97
48
98
49
// AsInt parses the value at key as an int into the target, if it exists.
99
- func AsInt (key string , target * int ) ParseFunc {
100
- return func (data map [string ]string ) error {
101
- if raw , ok := data [key ]; ok {
102
- val , err := strconv .Atoi (raw )
103
- if err != nil {
104
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
105
- }
106
- * target = val
107
- }
108
- return nil
109
- }
110
- }
50
+ var AsInt = parser .As [int ]
111
51
112
52
// AsUint16 parses the value at key as an uint16 into the target, if it exists.
113
- func AsUint16 (key string , target * uint16 ) ParseFunc {
114
- return func (data map [string ]string ) error {
115
- if raw , ok := data [key ]; ok {
116
- val , err := strconv .ParseUint (raw , 10 , 16 )
117
- if err != nil {
118
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
119
- }
120
- * target = uint16 (val )
121
- }
122
- return nil
123
- }
124
- }
53
+ var AsUint16 = parser .As [uint16 ]
125
54
126
55
// AsUint32 parses the value at key as an uint32 into the target, if it exists.
127
- func AsUint32 (key string , target * uint32 ) ParseFunc {
128
- return func (data map [string ]string ) error {
129
- if raw , ok := data [key ]; ok {
130
- val , err := strconv .ParseUint (raw , 10 , 32 )
131
- if err != nil {
132
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
133
- }
134
- * target = uint32 (val )
135
- }
136
- return nil
137
- }
138
- }
56
+ var AsUint32 = parser .As [uint32 ]
57
+
58
+ // AsUint64 parses the value at key as an uint32 into the target, if it exists.
59
+ var AsUint64 = parser .As [uint32 ]
139
60
140
61
// AsFloat64 parses the value at key as a float64 into the target, if it exists.
141
- func AsFloat64 (key string , target * float64 ) ParseFunc {
142
- return func (data map [string ]string ) error {
143
- if raw , ok := data [key ]; ok {
144
- val , err := strconv .ParseFloat (raw , 64 )
145
- if err != nil {
146
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
147
- }
148
- * target = val
149
- }
150
- return nil
151
- }
152
- }
62
+ var AsFloat64 = parser .As [float64 ]
153
63
154
64
// AsDuration parses the value at key as a time.Duration into the target, if it exists.
155
- func AsDuration (key string , target * time.Duration ) ParseFunc {
156
- return func (data map [string ]string ) error {
157
- if raw , ok := data [key ]; ok {
158
- val , err := time .ParseDuration (raw )
159
- if err != nil {
160
- return fmt .Errorf ("failed to parse %q: %w" , key , err )
161
- }
162
- * target = val
163
- }
164
- return nil
165
- }
166
- }
65
+ var AsDuration = parser .As [time .Duration ]
167
66
168
67
// AsStringSet parses the value at key as a sets.Set[string] (split by ',') into the target, if it exists.
169
68
func AsStringSet (key string , target * sets.Set [string ]) ParseFunc {
0 commit comments