22 lines
528 B
Go
22 lines
528 B
Go
package util
|
|
|
|
import (
|
|
"github.com/mitchellh/mapstructure"
|
|
)
|
|
|
|
// DecodeOther uses mapstructure to decode into target structure. Unused keys cause errors.
|
|
func DecodeOther(other interface{}, cc interface{}) error {
|
|
decoderConfig := &mapstructure.DecoderConfig{
|
|
Result: cc,
|
|
ErrorUnused: true,
|
|
WeaklyTypedInput: true,
|
|
DecodeHook: mapstructure.StringToTimeDurationHookFunc(),
|
|
}
|
|
|
|
decoder, err := mapstructure.NewDecoder(decoderConfig)
|
|
if err == nil {
|
|
err = decoder.Decode(other)
|
|
}
|
|
|
|
return err
|
|
}
|