func NoJitter(duration, min, max time.Duration, rng *rand.Rand) time.Duration {
	return boundedDuration(duration, min, max)
}
NoJitter returns the duration bounded between min and max
package discovery
import (
	"math"
	"math/rand"
	"sync"
	"time"
)
type BackoffFactory func() BackoffStrategy
type BackoffStrategy interface {
	Delay() time.Duration
	Reset()
}
type Jitter func(duration, min, max time.Duration, rng *rand.Rand) time.Duration
func FullJitter(duration, min, max time.Duration, rng *rand.Rand) time.Duration {
	if duration <= min {
		return min
	}
	normalizedDur := boundedDuration(duration, min, max) - min
	return boundedDuration(time.Duration(rng.Int63n(int64(normalizedDur)))+min, min, max)
}