Expose default values as a "Default" field on Options #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@elithrar provided some great feedback on the default value handling. After some thought, I've put together a PR that decouples the
OptionDefaulter
andOptionDecoder
interfaces. With this change, Options would have a separateDefault
field. As a result, string defaults can be assigned viaopt.Default = writ.StringDefault("value")
, and aChainedDefault
can be used to chain together defaults from a[]Defaulter
slice, returning the first non-empty default. This is how environment defaults are stacked with regular defaults with this PR.If I merge this, I'll target the merge for the v1.0 release. I think I'll probably collect breaking changes and merge them to a separate 1.0-wip branch.