diff --git a/example_test.go b/example_test.go index 31e509d..8162409 100644 --- a/example_test.go +++ b/example_test.go @@ -7,11 +7,38 @@ import ( "go.uber.org/ratelimit" ) -func Example() { - rl := ratelimit.New(100) // per second +func Example_default() { + rl := ratelimit.New(100) // per second, some slack. + + rl.Take() // Initialize. + time.Sleep(time.Millisecond * 45) // Let some time pass. prev := time.Now() for i := 0; i < 10; i++ { + now := rl.Take() + if i > 0 { + fmt.Println(i, now.Sub(prev).Round(time.Millisecond*2)) + } + prev = now + } + + // Output: + // 1 0s + // 2 0s + // 3 0s + // 4 4ms + // 5 10ms + // 6 10ms + // 7 10ms + // 8 10ms + // 9 10ms +} + +func Example_withoutSlack() { + rl := ratelimit.New(100, ratelimit.WithoutSlack) // per second, no slack. + + prev := time.Now() + for i := 0; i < 6; i++ { now := rl.Take() if i > 0 { fmt.Println(i, now.Sub(prev)) @@ -25,8 +52,4 @@ func Example() { // 3 10ms // 4 10ms // 5 10ms - // 6 10ms - // 7 10ms - // 8 10ms - // 9 10ms }