(v reflect.Value, prefix string, m map[string]interface{})
| 27 | } |
| 28 | |
| 29 | func flattenValue(v reflect.Value, prefix string, m map[string]interface{}) error { |
| 30 | switch v.Kind() { |
| 31 | case reflect.Map: |
| 32 | return flattenMap(v, prefix, m) |
| 33 | case reflect.Struct: |
| 34 | return flattenStruct(v, prefix, m) |
| 35 | case reflect.Slice: |
| 36 | return flattenSlice(v, prefix, m) |
| 37 | case reflect.Interface, reflect.Ptr: |
| 38 | if v.IsNil() { |
| 39 | m[prefix] = "null" |
| 40 | } else { |
| 41 | return flattenValue(v.Elem(), prefix, m) |
| 42 | } |
| 43 | default: |
| 44 | m[prefix] = v.Interface() |
| 45 | } |
| 46 | return nil |
| 47 | } |
| 48 | |
| 49 | func flattenSlice(v reflect.Value, prefix string, m map[string]interface{}) error { |
| 50 | n := v.Len() |
no test coverage detected