@@ -40,102 +40,167 @@ func stringToSlice(input string) []string {
40
40
return []string {input }
41
41
}
42
42
43
- func toBool (input string ) (bool , error ) {
43
+ func toBool (input string ) (bool , bool ) {
44
44
if len (input ) == 0 {
45
- return false , nil
45
+ return false , false
46
46
}
47
- return strconv .ParseBool (input )
47
+ v , err := strconv .ParseBool (input )
48
+ return v , err == nil
48
49
}
49
50
50
- func toBools (input []string ) ([]bool , error ) {
51
+ func toBools (input []string ) ([]bool , bool ) {
51
52
inputLen := len (input )
52
53
53
54
output := make ([]bool , inputLen )
54
55
for i , l := 0 , inputLen ; i < l ; i ++ {
55
- v , err := toBool (input [i ])
56
- if err != nil {
57
- return nil , err
56
+ v , ok := toBool (input [i ])
57
+ if ! ok {
58
+ return nil , false
58
59
}
59
60
output [i ] = v
60
61
}
61
62
62
- return output , nil
63
+ return output , true
63
64
}
64
65
65
- func toInt (input string ) (int , error ) {
66
- return strconv .Atoi (input )
66
+ func toInt (input string ) (int , bool ) {
67
+ v , err := strconv .Atoi (input )
68
+ return v , err == nil
67
69
}
68
70
69
- func toInts (input []string ) ([]int , error ) {
71
+ func toInts (input []string ) ([]int , bool ) {
70
72
inputLen := len (input )
71
73
72
74
output := make ([]int , inputLen )
73
75
for i , l := 0 , inputLen ; i < l ; i ++ {
74
- v , err := toInt (input [i ])
75
- if err != nil {
76
- return nil , err
76
+ v , ok := toInt (input [i ])
77
+ if ! ok {
78
+ return nil , false
77
79
}
78
80
output [i ] = v
79
81
}
80
82
81
- return output , nil
83
+ return output , true
82
84
}
83
85
84
- func toInt64 (input string ) (int64 , error ) {
85
- return strconv .ParseInt (input , 10 , 64 )
86
+ func toUint (input string ) (uint , bool ) {
87
+ v , err := strconv .ParseUint (input , 10 , 0 )
88
+ return uint (v ), err == nil
86
89
}
87
90
88
- func toInt64s (input []string ) ([]int64 , error ) {
91
+ func toUints (input []string ) ([]uint , bool ) {
92
+ inputLen := len (input )
93
+
94
+ output := make ([]uint , inputLen )
95
+ for i , l := 0 , inputLen ; i < l ; i ++ {
96
+ v , ok := toUint (input [i ])
97
+ if ! ok {
98
+ return nil , false
99
+ }
100
+ output [i ] = v
101
+ }
102
+
103
+ return output , true
104
+ }
105
+
106
+ func toInt32 (input string ) (int32 , bool ) {
107
+ v , err := strconv .ParseInt (input , 10 , 32 )
108
+ return int32 (v ), err == nil
109
+ }
110
+
111
+ func toInt32s (input []string ) ([]int32 , bool ) {
112
+ inputLen := len (input )
113
+
114
+ output := make ([]int32 , inputLen )
115
+ for i , l := 0 , inputLen ; i < l ; i ++ {
116
+ v , ok := toInt32 (input [i ])
117
+ if ! ok {
118
+ return nil , false
119
+ }
120
+ output [i ] = v
121
+ }
122
+
123
+ return output , true
124
+ }
125
+
126
+ func toUint32 (input string ) (uint32 , bool ) {
127
+ v , err := strconv .ParseUint (input , 10 , 32 )
128
+ return uint32 (v ), err == nil
129
+ }
130
+
131
+ func toUint32s (input []string ) ([]uint32 , bool ) {
132
+ inputLen := len (input )
133
+
134
+ output := make ([]uint32 , inputLen )
135
+ for i , l := 0 , inputLen ; i < l ; i ++ {
136
+ v , ok := toUint32 (input [i ])
137
+ if ! ok {
138
+ return nil , false
139
+ }
140
+ output [i ] = v
141
+ }
142
+
143
+ return output , true
144
+ }
145
+
146
+ func toInt64 (input string ) (int64 , bool ) {
147
+ v , err := strconv .ParseInt (input , 10 , 64 )
148
+ return v , err == nil
149
+ }
150
+
151
+ func toInt64s (input []string ) ([]int64 , bool ) {
89
152
inputLen := len (input )
90
153
91
154
output := make ([]int64 , inputLen )
92
155
for i , l := 0 , inputLen ; i < l ; i ++ {
93
- v , err := toInt64 (input [i ])
94
- if err != nil {
95
- return nil , err
156
+ v , ok := toInt64 (input [i ])
157
+ if ! ok {
158
+ return nil , false
96
159
}
97
160
output [i ] = v
98
161
}
99
162
100
- return output , nil
163
+ return output , true
101
164
}
102
165
103
- func toUint64 (input string ) (uint64 , error ) {
104
- return strconv .ParseUint (input , 10 , 64 )
166
+ func toUint64 (input string ) (uint64 , bool ) {
167
+ v , err := strconv .ParseUint (input , 10 , 64 )
168
+ return v , err == nil
105
169
}
106
170
107
- func toUint64s (input []string ) ([]uint64 , error ) {
171
+ func toUint64s (input []string ) ([]uint64 , bool ) {
108
172
inputLen := len (input )
109
173
110
174
output := make ([]uint64 , inputLen )
111
175
for i , l := 0 , inputLen ; i < l ; i ++ {
112
- v , err := toUint64 (input [i ])
113
- if err != nil {
114
- return nil , err
176
+ v , ok := toUint64 (input [i ])
177
+ if ! ok {
178
+ return nil , false
115
179
}
116
180
output [i ] = v
117
181
}
118
182
119
- return output , nil
183
+ return output , true
120
184
}
121
185
122
- func toFloat64 (input string ) (float64 , error ) {
123
- return strconv .ParseFloat (input , 64 )
186
+ func toFloat64 (input string ) (float64 , bool ) {
187
+ v , err := strconv .ParseFloat (input , 64 )
188
+ return v , err == nil
124
189
}
125
190
126
- func toFloat64s (input []string ) ([]float64 , error ) {
191
+ func toFloat64s (input []string ) ([]float64 , bool ) {
127
192
inputLen := len (input )
128
193
129
194
output := make ([]float64 , inputLen )
130
195
for i , l := 0 , inputLen ; i < l ; i ++ {
131
- v , err := toFloat64 (input [i ])
132
- if err != nil {
133
- return nil , err
196
+ v , ok := toFloat64 (input [i ])
197
+ if ! ok {
198
+ return nil , false
134
199
}
135
200
output [i ] = v
136
201
}
137
202
138
- return output , nil
203
+ return output , true
139
204
}
140
205
141
206
func contains (collection []string , find string ) bool {
0 commit comments