Skip to content

Commit

Permalink
Merge pull request #38 from antonmashko/fix/ptr-type-in-callbacks
Browse files Browse the repository at this point in the history
fix: added ptr type handling to parser callbacks
  • Loading branch information
antonmashko authored Sep 26, 2023
2 parents b0cdc44 + 8fa8e47 commit 65638e3
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,20 @@ func NewWithExternal(e External) *EnvConf {
}
}

func (e *EnvConf) fieldType(f field) *fieldType {
switch ft := f.(type) {
case *fieldType:
return ft
case *ptrType:
return e.fieldType(ft.field)
default:
return nil
}
}

func (e *EnvConf) fieldInitialized(f field) {
pt, ok := f.(*fieldType)
if !ok {
pt := e.fieldType(f)
if pt == nil {
return
}
dv, _ := pt.def.Value()
Expand All @@ -41,8 +52,8 @@ func (e *EnvConf) fieldInitialized(f field) {
}

func (e *EnvConf) fieldDefined(f field) {
pt, ok := f.(*fieldType)
if !ok {
pt := e.fieldType(f)
if pt == nil {
return
}
if pt.definedValue == nil {
Expand All @@ -64,8 +75,8 @@ func (e *EnvConf) fieldDefined(f field) {
}

func (e *EnvConf) fieldNotDefined(f field, err error) {
pt, ok := f.(*fieldType)
if !ok {
pt := e.fieldType(f)
if pt == nil {
return
}
e.opts.OnFieldDefineErr(option.FieldDefineErrorArg{
Expand Down

0 comments on commit 65638e3

Please sign in to comment.