consts/data_type.go

197 lines
11 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Package consts ...
//
// Description : consts ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2024-04-08 16:33
package consts
// DataType 数据类型枚举值
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:10 2024/11/25
type DataType string
func (df DataType) String() string {
return string(df)
}
func (df DataType) MarshalJSON() ([]byte, error) {
return []byte(df.String()), nil
}
// IsValid 判断枚举值是否有效
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:45 2024/11/25
func (df DataType) IsValid() bool {
for _, item := range DataTypeList {
if item.Value == df {
return true
}
}
return false
}
const (
DataTypeUnknown DataType = "unknown" // 位置数据类型
DataTypeNil DataType = "nil" // nil
DataTypePtr DataType = "ptr" // 指针
DataTypeInt DataType = "int" // int类型 -> int64
DataTypeUint DataType = "uint" // uint类型 -> uint64
DataTypeFloat DataType = "float" // float类型 -> float64
DataTypeBool DataType = "bool" // bool类型
DataTypeString DataType = "string" // 字符串类型
DataTypeSliceAny DataType = "[]any" // any数组 -> []any
DataTypeSliceAnyWithMarshal DataType = "[]any_marshal" // any数组 -> []any, json序列化之后的结构
DataTypeSliceInt DataType = "[]int" // int数组 -> []int64
DataTypeSliceIntWithChar DataType = "[]int_split" // int数组 -> []int64, 按照指定字符切割
DataTypeSliceIntWithMarshal DataType = "[]int_marshal" // int数组 -> []int64, json序列化之后的结果
DataTypeSliceUint DataType = "[]uint" // uint数组 -> []uint64
DataTypeSliceUintWithChar DataType = "[]uint_split" // uint数组 -> []uint64 指定字符切割
DataTypeSliceUintWithMarshal DataType = "[]uint_marshal" // uint数组 -> []uint64 json序列化之后的结果
DataTypeSliceFloat DataType = "[]float" // float数组 -> []float64
DataTypeSliceFloatWithChar DataType = "[]float_split" // float数组 -> []float64, 指定字符切割
DataTypeSliceFloatWithMarshal DataType = "[]float_marshal" // float数组 -> []float64, json序列化之后的结果
DataTypeSliceBool DataType = "[]bool" // bool数组 -> []bool
DataTypeSliceBoolWithChar DataType = "[]bool_split" // bool数组 -> []bool, 指定字符切割
DataTypeSliceBoolWithMarshal DataType = "[]bool_marshal" // bool数组 -> []bool, json序列化之后的结果
DataTypeSliceString DataType = "[]string" // 字符串数组 -> []string
DataTypeSliceStringWithChar DataType = "[]string_split" // 字符串数组 -> []string, 指定字符切割
DataTypeSliceStringWithMarshal DataType = "[]string_marshal" // 字符串数组 -> []string, json序列化之后的结果
DataTypeSliceSlice DataType = "[][]any" // 字符串数组 -> [][]any
DataTypeSliceSliceWithMarshal DataType = "[][]any_marshal" // 字符串数组 -> [][]any,json序列化之后的结果
DataTypeSliceMapAnyAny DataType = "[]map[any]any" // 字符串数组 -> []map[any]any, slice对象
DataTypeSliceMapAnyAnyWithMarshal DataType = "[]map[any]any_marshal" // 字符串数组 -> []map[any]any, json序列化后的结果
DataTypeSliceMapStringAny DataType = "[]map[string]any" // 字符串数组 -> map[string]any, slice对象
DataTypeSliceMapStringAnyWithMarshal = "[]map[string]any_marshal" // 字符串数组 -> []map[string]any, slice对象, json序列化之后的结果
DataTypeMapStrInt DataType = "map[string]int" // map -> map[string]int64
DataTypeMapStrIntWithMarshal DataType = "map[string]int_marshal" // map -> map[string]int64,json序列化之后的结果
DataTypeMapStrUint DataType = "map[string]uint" // map -> map[string]uint64
DataTypeMapStrUintWithMarshal DataType = "map[string]uint_marshal" // map -> map[string]uint64, json序列化之后的结果
DataTypeMapStrFloat DataType = "map[string]float" // map -> map[string]float64
DataTypeMapStrFloatWithMarshal DataType = "map[string]float_marshal" // map -> map[string]float64, json序列化之后的结果
DataTypeMapStrBool DataType = "map[string]bool" // map -> map[string]bool
DataTypeMapStrBoolWithMarshal DataType = "map[string]bool_marshal" // map -> map[string]bool,json序列换之后的结果
DataTypeMapStrAny DataType = "map[string]any" // map -> map[string]any
DataTypeMapStrAnyWithMarshal DataType = "map[string]any_marshal" // map -> map[string]any, json序列化之后的结果
DataTypeMapStrStr DataType = "map[string]string" // map -> map[string]string
DataTypeMapStrStrWithMarshal DataType = "map[string]string_marshal" // map -> map[string]string, json序列化之后的结果
DataTypeMapAnyAny DataType = "map[any]any" // map -> map[any]any
DataTypeMapAnyAnyWithMarshal DataType = "map[any]any_marshal" // map -> map[any]any, json序列化之后的结果
DataTypeMapStrSlice DataType = "map[string][]any" // map -> map[string][]any
DataTypeMapStrSliceWithMarshal DataType = "map[string][]any_marshal" // map -> map[string][]any, json 序列化之后的结果
DataTypeAny DataType = "any" // 任意类型 -> any
DataTypeStringPtr DataType = "string_ptr" // *string, 字符串指针
DataTypeIntPtr DataType = "int_ptr" // *int64, int64指针
DataTypeUintPtr DataType = "uint_ptr" // *uint64, uint64指针
DataTypeFloatPtr DataType = "float_ptr" // *float64, float64指针
DataTypeBoolPtr DataType = "bool_ptr" // *bool, 字符串指针
)
const (
DataStatusNotFound = "NOT_FOUND"
DataStatusIsNil = "IS_NIL"
DataStatusIsZero = "IS_ZERO"
DataStatusIsEmpty = "IS_EMPTY"
DataStatusIsFalse = "IS_FALSE"
)
const (
DataSliceModelReal = "REAL"
DataSliceModelMarshal = "MARSHAL"
DataSliceModelWithSplitChar = "WITH_SPLIT_CHAR"
)
const (
DataMapModelReal = "REAL"
DataMapModelMarshal = "MARSHAL"
)
// DataTypeDesc 数据类型描述
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 13:22 2024/6/23
type DataTypeDesc struct {
Value DataType `json:"value"` // 具体数据类型
Description string `json:"description"` // 数据类型描述
}
var (
DataTypeList = []DataTypeDesc{
// 基础数据类型
getDataTypeDesc(DataTypeAny, "任意数据类型"),
getDataTypeDesc(DataTypeInt, "int类型 -> int64"),
getDataTypeDesc(DataTypeUint, "uint类型 -> uint64"),
getDataTypeDesc(DataTypeFloat, "float类型 -> float64"),
getDataTypeDesc(DataTypeBool, "bool类型"),
getDataTypeDesc(DataTypeString, "字符串类型"),
// map数据类型
getDataTypeDesc(DataTypeMapStrAny, "map[string]any"),
getDataTypeDesc(DataTypeMapStrAnyWithMarshal, "map[string]any json序列化之后的结果"),
getDataTypeDesc(DataTypeMapStrInt, "map[string]int64"),
getDataTypeDesc(DataTypeMapStrIntWithMarshal, "map[string]int64 json序列化之后的结果"),
getDataTypeDesc(DataTypeMapStrUint, "map[string]uint64"),
getDataTypeDesc(DataTypeMapStrUintWithMarshal, "map[string]uint64 json序列化之后的结果"),
getDataTypeDesc(DataTypeMapStrFloat, "map[string]float64"),
getDataTypeDesc(DataTypeMapStrFloatWithMarshal, "map[string]float64 json序列化之后的结果"),
getDataTypeDesc(DataTypeMapStrBool, "map[string]bool"),
getDataTypeDesc(DataTypeMapStrBoolWithMarshal, "map[string]bool json序列化之后的结果"),
getDataTypeDesc(DataTypeMapStrStr, "map[string]string"),
getDataTypeDesc(DataTypeMapStrStrWithMarshal, "map[string]string json序列化之后的结果"),
getDataTypeDesc(DataTypeMapAnyAny, "map[any]any"),
getDataTypeDesc(DataTypeMapAnyAnyWithMarshal, "map[any]any json序列化之后的结果"),
getDataTypeDesc(DataTypeMapStrSlice, "map[string][]any"),
getDataTypeDesc(DataTypeMapStrSliceWithMarshal, "map[string][]any json序列化之后的结果"),
// slice数据类型
getDataTypeDesc(DataTypeSliceAny, "[]any"),
getDataTypeDesc(DataTypeSliceString, "[]string"),
getDataTypeDesc(DataTypeSliceStringWithChar, "[]string 按照指定字符切割"),
getDataTypeDesc(DataTypeSliceStringWithMarshal, "[]string json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceAnyWithMarshal, "[]any json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceInt, "[]int"),
getDataTypeDesc(DataTypeSliceIntWithChar, "[]int 按照指定字符切割"),
getDataTypeDesc(DataTypeSliceIntWithMarshal, "[]int json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceUint, "[]uint"),
getDataTypeDesc(DataTypeSliceUintWithChar, "[]uint 按照指定字符切割"),
getDataTypeDesc(DataTypeSliceUintWithMarshal, "[]uint json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceFloat, "[]float"),
getDataTypeDesc(DataTypeSliceFloatWithChar, "[]float 按照指定字符切割"),
getDataTypeDesc(DataTypeSliceFloatWithMarshal, "[]float json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceBool, "[]bool"),
getDataTypeDesc(DataTypeSliceBoolWithChar, "[]bool 按照指定字符切割"),
getDataTypeDesc(DataTypeSliceBoolWithMarshal, "[]bool json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceSlice, "[][]any"),
getDataTypeDesc(DataTypeSliceSliceWithMarshal, "[][]any json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceMapStringAny, "[][]map[string]any"),
getDataTypeDesc(DataTypeSliceMapStringAnyWithMarshal, "[][]map[string]any json序列化之后的结果"),
getDataTypeDesc(DataTypeSliceMapAnyAny, "[]map[any]any"),
getDataTypeDesc(DataTypeSliceMapAnyAnyWithMarshal, "[]map[any]any json序列化之后的结果"),
// 基础类型的指针类型
getDataTypeDesc(DataTypeStringPtr, "*string, 字符串指针"),
getDataTypeDesc(DataTypeUintPtr, "*int64, int64指针"),
getDataTypeDesc(DataTypeIntPtr, "*int64, *uint64, uint64指针"),
getDataTypeDesc(DataTypeFloatPtr, "*float64, float64指针"),
getDataTypeDesc(DataTypeBoolPtr, "*bool, 字符串指针"),
}
)
// getDataTypeDesc ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 13:24 2024/6/23
func getDataTypeDesc(value DataType, description string) DataTypeDesc {
return DataTypeDesc{
Value: value,
Description: description,
}
}