func GoTypeToCtyType()

in cty.go [70:96]


func GoTypeToCtyType(goType reflect.Type) cty.Type {
	if goType == nil {
		return cty.NilType
	}
	switch goType.Kind() {
	case reflect.Bool:
		return cty.Bool
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		return cty.Number
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
		return cty.Number
	case reflect.Float32, reflect.Float64:
		return cty.Number
	case reflect.String:
		return cty.String
	case reflect.Slice:
		elemType := GoTypeToCtyType(goType.Elem())
		return cty.List(elemType)
	case reflect.Map:
		valueType := GoTypeToCtyType(goType.Elem())
		return cty.Map(valueType)
	case reflect.Struct:
		return StructToCtyType(goType)
	default:
		return cty.NilType
	}
}