refactor Field to have defaultTag field which value is from parent struct

This commit is contained in:
jaemin 2015-03-04 19:02:03 +09:00
parent a093a86a06
commit 79afa3ec1c
2 changed files with 7 additions and 5 deletions

View File

@ -14,8 +14,9 @@ var (
// Field represents a single struct field that encapsulates high level
// functions around the field.
type Field struct {
value reflect.Value
field reflect.StructField
value reflect.Value
field reflect.StructField
defaultTag string
}
// Tag returns the value associated with key in the tag string. If there is no
@ -92,7 +93,7 @@ func (f *Field) Set(val interface{}) error {
//
// It panics if field is not exported or if field's kind is not struct
func (f *Field) Fields() []*Field {
return getFields(f.value, DefaultTagName)
return getFields(f.value, f.defaultTag)
}
// Field returns the field from a nested struct. It panics if the nested struct

View File

@ -222,8 +222,9 @@ func (s *Struct) FieldOk(name string) (*Field, bool) {
}
return &Field{
field: field,
value: s.value.FieldByName(name),
field: field,
value: s.value.FieldByName(name),
defaultTag: s.TagName,
}, true
}