-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample.go
More file actions
157 lines (149 loc) · 8.29 KB
/
Copy pathexample.go
File metadata and controls
157 lines (149 loc) · 8.29 KB
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
//go:generate ../../bin/gencheck --supp=example_other_file.go -f=example.go
package example
import (
"time"
"github.com/abice/gencheck/internal/benchmark"
)
// Example struct for testing
type Example struct {
MapOfInterfaces map[string]interface{} `valid:"notnil"`
}
// IFace is a sample interface for testing.
type IFace interface {
SomeMethod() error
}
// Inner is another example struct for testing
type Inner struct {
EqCSFieldString string `valid:"required"`
NeCSFieldString string
GtCSFieldString string
GteCSFieldString string
LtCSFieldString string
LteCSFieldString string
}
type Embedded struct {
FieldString string `valid:"required"`
}
// Test is a test struct for testing.
type Test struct {
Embedded
ExternalEmbedded
Inner Inner
// RequiredNumber int `valid:"required"`
RequiredString string `valid:"required,ff"`
RequiredMultiple []string `valid:"required"`
LenString string `valid:"len=1"`
LenNumber float64 `valid:"len=1113.00"`
LenMultiple []string `valid:"len=7"`
MinString string `valid:"min=1"`
MinNumber float64 `valid:"min=1113.00"`
MinMultiple []string `valid:"min=7"`
MaxString string `valid:"max=3"`
MaxNumber float64 `valid:"max=1113.00"`
MaxMultiple []string `valid:"max=7"`
EqString string `valid:"eq=3"`
EqNumber float64 `valid:"eq=2.33"`
EqMultiple []string `valid:"eq=7"`
NeString string `valid:"ne="`
NeNumber float64 `valid:"ne=0.00"`
NeMultiple []string `valid:"ne=0"`
LtString string `valid:"lt=3"`
LtNumber float64 `valid:"lt=5.56"`
LtMultiple []string `valid:"lt=2"`
LtTime time.Time `valid:"lt"`
LteString string `valid:"lte=3"`
LteNumber float64 `valid:"lte=5.56"`
LteMultiple []string `valid:"lte=2"`
LteTime time.Time `valid:"lte"`
GtString string `valid:"gt=3"`
GtNumber float64 `valid:"gt=5.56"`
GtMultiple []string `valid:"gt=2"`
GtTime time.Time `valid:"gt"`
GteString string `valid:"gte=3"`
GteNumber float64 `valid:"gte=5.56"`
GteMultiple []string `valid:"gte=2"`
GteTime time.Time `valid:"gte"`
GteTimeVal time.Time `valid:"gte=1*time.Second"`
GteTimePtr *time.Time `valid:"gte"`
EqFieldString string `valid:"eqfield=MaxString"`
EqCSFieldString string `valid:"eqcsfield=Inner.EqCSFieldString"`
NeCSFieldString string `valid:"necsfield=Inner.NeCSFieldString"`
GtCSFieldString string `valid:"gtcsfield=Inner.GtCSFieldString"`
GteCSFieldString string `valid:"gtecsfield=Inner.GteCSFieldString"`
LtCSFieldString string `valid:"ltcsfield=Inner.LtCSFieldString"`
LteCSFieldString string `valid:"ltecsfield=Inner.LteCSFieldString"`
NeFieldString string `valid:"nefield=EqFieldString"`
GtFieldString string `valid:"gtfield=MaxString"`
GteFieldString string `valid:"gtefield=MaxString"`
LtFieldString string `valid:"ltfield=MaxString"`
LteFieldString string `valid:"ltefield=MaxString"`
AlphaString string `valid:"alpha"`
AlphanumString string `valid:"alphanum"`
NumericString string `valid:"numeric"`
NumberString string `valid:"number"`
HexadecimalString string `valid:"hexadecimal"`
HexColorString string `valid:"hexcolor"`
RGBColorString string `valid:"rgb"`
RGBAColorString string `valid:"rgba"`
HSLColorString string `valid:"hsl"`
HSLAColorString string `valid:"hsla"`
Email string `valid:"email"`
URL string `valid:"url"`
URI string `valid:"uri"`
Base64 string `valid:"base64"`
Contains string `valid:"contains=purpose"`
ContainsPtr *string `valid:"contains=purpose"`
ContainsArray []string `valid:"contains=nonsense"`
ContainsAny string `valid:"containsany=!@#$"`
Excludes string `valid:"excludes=text"`
ExcludesAll string `valid:"excludesall=!@#$"`
ExcludesRune string `valid:"excludesrune=☻"`
ISBN string `valid:"isbn"`
ISBN10 string `valid:"isbn10"`
ISBN13 string `valid:"isbn13"`
UUID string `valid:"uuid"`
UUID3 string `valid:"uuid3"`
UUID4 string `valid:"uuid4"`
UUID5 string `valid:"uuid5"`
ASCII string `valid:"ascii"`
PrintableASCII string `valid:"printascii"`
MultiByte string `valid:"multibyte"`
DataURI string `valid:"datauri"`
Latitude string `valid:"latitude"`
Longitude string `valid:"longitude"`
SSN string `valid:"ssn"`
IP string `valid:"ip"`
IPv4 string `valid:"ipv4"`
IPv6 string `valid:"ipv6"`
CIDR string `valid:"cidr"`
CIDRv4 string `valid:"cidrv4"`
CIDRv6 string `valid:"cidrv6"`
TCPAddr string `valid:"tcp_addr"`
TCPAddrv4 string `valid:"tcp4_addr"`
TCPAddrv6 string `valid:"tcp6_addr"`
UDPAddr string `valid:"udp_addr"`
UDPAddrv4 string `valid:"udp4_addr"`
UDPAddrv6 string `valid:"udp6_addr"`
IPAddr string `valid:"ip_addr"`
IPAddrv4 string `valid:"ip4_addr"`
IPAddrv6 string `valid:"ip6_addr"`
UnixAddr string `valid:"unix_addr"` // can't fail from within Go's net package currently, but maybe in the future
MAC string `valid:"mac"`
IsColor string `valid:"iscolor"`
MinIntPtr *int64 `valid:"required,min=1234"`
InnerDive Inner `valid:"dive"`
InnerDivePtr *Inner `valid:"dive"`
InnerDiveSlice []Inner `valid:"dive"`
InnerDiveSlicePtr []*Inner `valid:"dive"`
InnerDiveMap map[string]Inner `valid:"dive"`
InnerDiveMapPtr map[string]*Inner `valid:"dive"`
OtherFileDive OtherFile `valid:"dive"`
OtherFileDivePtr *OtherFile `valid:"dive"`
OtherFileDiveSlice []OtherFile `valid:"dive"`
OtherFileDiveSlicePtr []*OtherFile `valid:"dive"`
OtherFileDiveMap map[string]OtherFile `valid:"dive"`
OtherFileDiveMapPtr map[string]*OtherFile `valid:"dive"`
MapContains map[string]interface{} `valid:"contains=key"`
TestString benchmark.TestString `valid:"dive"`
TestStringPtr *benchmark.TestString `valid:"dive"`
}