-
Notifications
You must be signed in to change notification settings - Fork 1
/
field.go
130 lines (105 loc) · 1.56 KB
/
field.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package parser
import (
"fmt"
)
type Field interface {
fmt.Stringer
field()
Name() string
Pointer() bool
setName(string)
setPointer(bool)
}
type fieldAtomic struct {
name string
pointer bool
}
func (*fieldAtomic) field() {}
func (f *fieldAtomic) String() string {
return f.Name()
}
func (f *fieldAtomic) Name() string {
return f.name
}
func (f *fieldAtomic) setName(name string) {
f.name = name
}
func (f *fieldAtomic) Pointer() bool {
return f.pointer
}
func (f *fieldAtomic) setPointer(val bool) {
f.pointer = val
}
type FieldID struct {
*fieldAtomic
}
type FieldString struct {
*fieldAtomic
}
type FieldNumeric struct {
*fieldAtomic
Type NumberType
}
type NumberType int32
const (
NumberInt NumberType = iota
NumberInt8
NumberInt16
NumberInt32
NumberInt64
//NumberUint
NumberUint8
NumberUint16
NumberUint32
//NumberUint64
//NumberUintptr
NumberFloat32
NumberFloat64
NumberRune
)
type FieldBool struct {
*fieldAtomic
}
type FieldByte struct {
*fieldAtomic
}
type FieldTime struct {
*fieldAtomic
IsCreatedAt bool
IsUpdatedAt bool
}
type FieldUUID struct {
*fieldAtomic
}
type FieldURL struct {
*fieldAtomic
}
type FieldNode struct {
*fieldAtomic
Node string
}
type FieldEdge struct {
*fieldAtomic
Edge string
}
type FieldEnum struct {
*fieldAtomic
Typ string
}
type FieldStruct struct {
*fieldAtomic
Struct string
}
type FieldSlice struct {
*fieldAtomic
// Value string
Field Field
// IsNode bool
// IsEdge bool
// IsEnum bool
}
// type FieldMap struct {
// fieldAtomic
// Key string
// Value string
// }