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.
Summary: This improves support for the
default
struct tag ontime.Duration
.Problem
time.Duration
is anint64
type, so it's already supported by the default tag.However, the default is interpreted as a number of nanoseconds, not a duration, making parsing a bit awkward.
Example for 120ms:
Feature
Go's
time
library supports a human-readable notation for durations.Including this improves readability:
Implementation notes
To preserve backwards-compatibility, the code checks for three conditions:
int64
time.Duration
If either is not met, the code falls back to parsing a number.
Open questions:
.Type().String()
, is it preferred to check for.Type().PkgName()
and.Type().Name()
for a tiny bit more performance?