Skip to content

Commit 3e196d4

Browse files
joeybloggsjoeybloggs
authored andcommitted
saving some bytes uint8 vs int
1 parent b2c8f66 commit 3e196d4

File tree

4 files changed

+29
-25
lines changed

4 files changed

+29
-25
lines changed

cache.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,13 @@ func (v *Validate) extractStructCache(current reflect.Value, sName string) *cStr
153153
ctag = new(cTag)
154154
}
155155

156-
cs.fields[i] = &cField{idx: i, name: fld.Name, altName: customName, cTags: ctag, namesEqual: fld.Name == customName}
156+
cs.fields[i] = &cField{
157+
idx: i,
158+
name: fld.Name,
159+
altName: customName,
160+
cTags: ctag,
161+
namesEqual: fld.Name == customName,
162+
}
157163
}
158164

159165
v.structCache.Set(typ, cs)

errors.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,12 @@ type fieldError struct {
132132
actualTag string
133133
ns string
134134
structNs string
135-
fieldLen int
136-
structfieldLen int
137-
// field string
138-
// structField string
139-
value interface{}
140-
param string
141-
kind reflect.Kind
142-
typ reflect.Type
135+
fieldLen uint8
136+
structfieldLen uint8
137+
value interface{}
138+
param string
139+
kind reflect.Kind
140+
typ reflect.Type
143141
}
144142

145143
// Tag returns the validation tag that failed.
@@ -169,13 +167,13 @@ func (fe *fieldError) StructNamespace() string {
169167
// fields actual name.
170168
func (fe *fieldError) Field() string {
171169
// return fe.field
172-
return fe.ns[len(fe.ns)-fe.fieldLen:]
170+
return fe.ns[len(fe.ns)-int(fe.fieldLen):]
173171
}
174172

175173
// returns the fields actual name from the struct, when able to determine.
176174
func (fe *fieldError) StructField() string {
177175
// return fe.structField
178-
return fe.structNs[len(fe.structNs)-fe.structfieldLen:]
176+
return fe.structNs[len(fe.structNs)-int(fe.structfieldLen):]
179177
}
180178

181179
// Value returns the actual fields value in case needed for creating the error

struct_level.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,8 @@ func (v *validate) ReportError(field interface{}, fieldName, structFieldName, ta
121121
actualTag: tag,
122122
ns: v.str1,
123123
structNs: v.str2,
124-
fieldLen: len(fieldName),
125-
structfieldLen: len(structFieldName),
124+
fieldLen: uint8(len(fieldName)),
125+
structfieldLen: uint8(len(structFieldName)),
126126
param: param,
127127
kind: kind,
128128
},
@@ -136,8 +136,8 @@ func (v *validate) ReportError(field interface{}, fieldName, structFieldName, ta
136136
actualTag: tag,
137137
ns: v.str1,
138138
structNs: v.str2,
139-
fieldLen: len(fieldName),
140-
structfieldLen: len(structFieldName),
139+
fieldLen: uint8(len(fieldName)),
140+
structfieldLen: uint8(len(structFieldName)),
141141
value: fv.Interface(),
142142
param: param,
143143
kind: kind,

validator.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ func (v *validate) traverseField(parent reflect.Value, current reflect.Value, ns
117117
actualTag: ct.tag,
118118
ns: v.str1,
119119
structNs: v.str2,
120-
fieldLen: len(cf.altName),
121-
structfieldLen: len(cf.name),
120+
fieldLen: uint8(len(cf.altName)),
121+
structfieldLen: uint8(len(cf.name)),
122122
param: ct.param,
123123
kind: kind,
124124
},
@@ -133,8 +133,8 @@ func (v *validate) traverseField(parent reflect.Value, current reflect.Value, ns
133133
actualTag: ct.tag,
134134
ns: v.str1,
135135
structNs: v.str2,
136-
fieldLen: len(cf.altName),
137-
structfieldLen: len(cf.name),
136+
fieldLen: uint8(len(cf.altName)),
137+
structfieldLen: uint8(len(cf.name)),
138138
value: current.Interface(),
139139
param: ct.param,
140140
kind: kind,
@@ -327,8 +327,8 @@ OUTER:
327327
actualTag: ct.actualAliasTag,
328328
ns: v.str1,
329329
structNs: v.str2,
330-
fieldLen: len(cf.altName),
331-
structfieldLen: len(cf.name),
330+
fieldLen: uint8(len(cf.altName)),
331+
structfieldLen: uint8(len(cf.name)),
332332
value: current.Interface(),
333333
param: ct.param,
334334
kind: kind,
@@ -346,8 +346,8 @@ OUTER:
346346
actualTag: tVal,
347347
ns: v.str1,
348348
structNs: v.str2,
349-
fieldLen: len(cf.altName),
350-
structfieldLen: len(cf.name),
349+
fieldLen: uint8(len(cf.altName)),
350+
structfieldLen: uint8(len(cf.name)),
351351
value: current.Interface(),
352352
param: ct.param,
353353
kind: kind,
@@ -385,8 +385,8 @@ OUTER:
385385
actualTag: ct.tag,
386386
ns: v.str1,
387387
structNs: v.str2,
388-
fieldLen: len(cf.altName),
389-
structfieldLen: len(cf.name),
388+
fieldLen: uint8(len(cf.altName)),
389+
structfieldLen: uint8(len(cf.name)),
390390
value: current.Interface(),
391391
param: ct.param,
392392
kind: kind,

0 commit comments

Comments
 (0)