forked from si3nloong/sqlike
-
Notifications
You must be signed in to change notification settings - Fork 0
/
type.go
83 lines (79 loc) · 1.32 KB
/
type.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package sqltype
// Type : merge the golang data type and custom type
type Type int
// types :
const (
String Type = iota
Char
Bool
Byte
Int
Int8
Int16
Int32
Int64
Uint
Uint8
Uint16
Uint32
Uint64
Float32
Float64
GeoPoint
Date
DateTime
Time
Timestamp
Struct
Array
Slice
Map
JSON
Enum
Set
UUID
Point
LineString
Polygon
MultiPoint
MultiLineString
MultiPolygon
)
var names = map[Type]string{
String: "string",
Bool: "boolean",
Byte: "byte",
Int: "int",
Int8: "int8",
Int16: "int16",
Int32: "int32",
Int64: "int64",
Uint: "uint",
Uint8: "uint8",
Uint16: "uint16",
Uint32: "uint32",
Uint64: "uint64",
Float32: "float32",
Float64: "float64",
Slice: "slice",
Map: "map",
Struct: "struct",
Timestamp: "timestamp",
DateTime: "datetime",
Time: "time",
JSON: "json",
UUID: "uuid",
Point: "point",
LineString: "linestring",
Polygon: "polygon",
MultiPoint: "multipoint",
MultiLineString: "multilinestring",
MultiPolygon: "multipolygon",
}
// String :
func (t Type) String() string {
if v, ok := names[t]; ok {
return v
}
return "unknown"
}