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