25 lines
353 B
Go
25 lines
353 B
Go
package config
|
|
|
|
import "time"
|
|
|
|
type Duration time.Duration
|
|
|
|
func (d *Duration) UnmarshalJSON(data []byte) error {
|
|
if len(data) == 0 {
|
|
*d = 0
|
|
return nil
|
|
}
|
|
|
|
duration, err := time.ParseDuration(string(data))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
*d = Duration(duration)
|
|
return nil
|
|
}
|
|
|
|
func (d Duration) Std() time.Duration {
|
|
return time.Duration(d)
|
|
}
|