github.com/urso/go-structform@v0.0.2/gotype/fold_refl_sel.yml (about) 1 import: 2 - types.yml 3 4 main: | 5 package gotype 6 7 var _reflPrimitivesMapping = map[reflect.Type]reFoldFn{ 8 {{ range data.primitiveTypes }} 9 {{ $t := capitalize . }} 10 t{{ $t }}: reFold{{ $t }}, 11 reflect.SliceOf(t{{ $t }}): reFoldArr{{ $t }}, 12 reflect.MapOf(tString, t{{ $t }}): reFoldMap{{ $t }}, 13 {{ end }} 14 } 15 16 func getReflectFoldPrimitive(t reflect.Type) reFoldFn { 17 return _reflPrimitivesMapping[t] 18 } 19 20 func getReflectFoldPrimitiveKind(t reflect.Type) (reFoldFn, error) { 21 switch t.Kind() { 22 {{ range data.primitiveTypes }} 23 {{ $t := capitalize . }} 24 case reflect.{{ $t }}: 25 return reFold{{ $t }}, nil 26 {{ end }} 27 default: 28 return nil, errUnsupported 29 } 30 }