diff options
Diffstat (limited to 'internal/service/time.go')
-rw-r--r-- | internal/service/time.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/internal/service/time.go b/internal/service/time.go index b275b82..117b868 100644 --- a/internal/service/time.go +++ b/internal/service/time.go @@ -53,7 +53,15 @@ func (s *Duration) UnmarshalText(text []byte) error { return nil } +// Randomly generate a duration between from and until. +// +// Returns from if its greater than until. func RandomDuration(from Duration, until Duration) Duration { + if from.Duration >= until.Duration { + return from + } + period := until.Duration - from.Duration return Duration{from.Duration + time.Duration(rand.Intn(int(period)))} + } |