convertToSlice convert slice interface{} to []interface{}
(arr interface{})
| 339 | |
| 340 | // convertToSlice convert slice interface{} to []interface{} |
| 341 | func (dm *mapperObject) convertToSlice(arr interface{}) []interface{} { |
| 342 | v := reflect.ValueOf(arr) |
| 343 | if v.Kind() == reflect.Ptr { |
| 344 | if v.Elem().Kind() != reflect.Slice { |
| 345 | panic("fromSlice arr is not a pointer to a slice") |
| 346 | } |
| 347 | v = v.Elem() |
| 348 | } else { |
| 349 | if v.Kind() != reflect.Slice { |
| 350 | panic("fromSlice arr is not a slice") |
| 351 | } |
| 352 | } |
| 353 | l := v.Len() |
| 354 | ret := make([]interface{}, l) |
| 355 | for i := 0; i < l; i++ { |
| 356 | ret[i] = v.Index(i).Interface() |
| 357 | } |
| 358 | return ret |
| 359 | } |
| 360 | |
| 361 | // checkIsTypeWrapper check value is in type wrappers |
| 362 | func (dm *mapperObject) checkIsTypeWrapper(value reflect.Value) bool { |