@@ -142,6 +142,13 @@ func (v Value) AsBool() bool {
142
142
// AsBoolSlice returns the []bool value. Make sure that the Value's type is
143
143
// BOOLSLICE.
144
144
func (v Value ) AsBoolSlice () []bool {
145
+ if v .vtype != BOOLSLICE {
146
+ return nil
147
+ }
148
+ return v .asBoolSlice ()
149
+ }
150
+
151
+ func (v Value ) asBoolSlice () []bool {
145
152
return attribute.AsSlice [bool ](v .slice )
146
153
}
147
154
@@ -154,6 +161,13 @@ func (v Value) AsInt64() int64 {
154
161
// AsInt64Slice returns the []int64 value. Make sure that the Value's type is
155
162
// INT64SLICE.
156
163
func (v Value ) AsInt64Slice () []int64 {
164
+ if v .vtype != INT64SLICE {
165
+ return nil
166
+ }
167
+ return v .asInt64Slice ()
168
+ }
169
+
170
+ func (v Value ) asInt64Slice () []int64 {
157
171
return attribute.AsSlice [int64 ](v .slice )
158
172
}
159
173
@@ -166,6 +180,13 @@ func (v Value) AsFloat64() float64 {
166
180
// AsFloat64Slice returns the []float64 value. Make sure that the Value's type is
167
181
// FLOAT64SLICE.
168
182
func (v Value ) AsFloat64Slice () []float64 {
183
+ if v .vtype != FLOAT64SLICE {
184
+ return nil
185
+ }
186
+ return v .asFloat64Slice ()
187
+ }
188
+
189
+ func (v Value ) asFloat64Slice () []float64 {
169
190
return attribute.AsSlice [float64 ](v .slice )
170
191
}
171
192
@@ -178,6 +199,13 @@ func (v Value) AsString() string {
178
199
// AsStringSlice returns the []string value. Make sure that the Value's type is
179
200
// STRINGSLICE.
180
201
func (v Value ) AsStringSlice () []string {
202
+ if v .vtype != STRINGSLICE {
203
+ return nil
204
+ }
205
+ return v .asStringSlice ()
206
+ }
207
+
208
+ func (v Value ) asStringSlice () []string {
181
209
return attribute.AsSlice [string ](v .slice )
182
210
}
183
211
@@ -189,19 +217,19 @@ func (v Value) AsInterface() interface{} {
189
217
case BOOL :
190
218
return v .AsBool ()
191
219
case BOOLSLICE :
192
- return v .AsBoolSlice ()
220
+ return v .asBoolSlice ()
193
221
case INT64 :
194
222
return v .AsInt64 ()
195
223
case INT64SLICE :
196
- return v .AsInt64Slice ()
224
+ return v .asInt64Slice ()
197
225
case FLOAT64 :
198
226
return v .AsFloat64 ()
199
227
case FLOAT64SLICE :
200
- return v .AsFloat64Slice ()
228
+ return v .asFloat64Slice ()
201
229
case STRING :
202
230
return v .stringly
203
231
case STRINGSLICE :
204
- return v .AsStringSlice ()
232
+ return v .asStringSlice ()
205
233
}
206
234
return unknownValueType {}
207
235
}
@@ -210,19 +238,19 @@ func (v Value) AsInterface() interface{} {
210
238
func (v Value ) Emit () string {
211
239
switch v .Type () {
212
240
case BOOLSLICE :
213
- return fmt .Sprint (v .AsBoolSlice ())
241
+ return fmt .Sprint (v .asBoolSlice ())
214
242
case BOOL :
215
243
return strconv .FormatBool (v .AsBool ())
216
244
case INT64SLICE :
217
- return fmt .Sprint (v .AsInt64Slice ())
245
+ return fmt .Sprint (v .asInt64Slice ())
218
246
case INT64 :
219
247
return strconv .FormatInt (v .AsInt64 (), 10 )
220
248
case FLOAT64SLICE :
221
- return fmt .Sprint (v .AsFloat64Slice ())
249
+ return fmt .Sprint (v .asFloat64Slice ())
222
250
case FLOAT64 :
223
251
return fmt .Sprint (v .AsFloat64 ())
224
252
case STRINGSLICE :
225
- return fmt .Sprint (v .AsStringSlice ())
253
+ return fmt .Sprint (v .asStringSlice ())
226
254
case STRING :
227
255
return v .stringly
228
256
default :
0 commit comments