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