code: func StringToDurationValueFunc() mapstructure.DecodeHookFunc {
  	return func(
  		f reflect.Type,
  		t reflect.Type,
  		data interface{}) (interface{}, error) {
  		if f.Kind() != reflect.String {
  			return data, nil
  		}
  
  		val := DurationValue{}
  		if t != reflect.TypeOf(val) {
  			return data, nil
  		}
  		if err := val.Set(data.(string)); err != nil {
  			return nil, err
  		}
  		return val, nil
  	}
  }
docs: // StringToDurationValueFunc is a mapstructure hook that looks for an incoming
  // string mapped to a DurationValue and does the translation.