github.com/urso/go-structform@v0.0.2/gotype/unfold_lookup.go (about) 1 package gotype 2 3 /* 4 func lookupReflUnfolder(t reflect.Type) (reflUnfolder, error) { 5 // we always expect a pointer to a value 6 bt := t.Elem() 7 8 switch bt.Kind() { 9 case reflect.Array: 10 switch bt.Elem().Kind() { 11 case reflect.Int: 12 return liftGoUnfolder(newUnfolderArrInt()), nil 13 } 14 15 case reflect.Slice: 16 17 case reflect.Map: 18 if bt.Key().Kind() != reflect.String { 19 return nil, errMapRequiresStringKey 20 } 21 22 switch bt.Elem().Kind() { 23 case reflect.Interface: 24 return liftGoUnfolder(newUnfolderMapIfc()), nil 25 } 26 27 case reflect.Struct: 28 29 } 30 31 return nil, errTODO() 32 } 33 */