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    }