package config import ( "encoding/json" "time" ) type Duration time.Duration func (d Duration) Get() time.Duration { return time.Duration(d) } func (d *Duration) UnmarshalJSON(b []byte) error { var s string if err := json.Unmarshal(b, &s); err != nil { return err } d2, err := time.ParseDuration(s) if err != nil { return err } *d = Duration(d2) return nil }