func WithMaxWaitDuration(maxWaitDuration time.Duration) RateLimitOption {
	return func(r *rateLimiter) {
		r.maxWaitDuration = maxWaitDuration
	}
}
WithMaxWaitDuration customizes maxWaitDuration in limiter's WaitMaxDuration action.
package lib
import (
	"context"
	"github.com/juju/ratelimit"
	"google.golang.org/grpc"
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/status"
	"time"
)
const infinityDuration time.Duration = 0x7fffffffffffffff
type RateLimitOption func(*rateLimiter)
func WithLimiter(l Limiter) RateLimitOption {
	return func(r *rateLimiter) {
		r.limiter = l
		if r.maxWaitDuration == 0 {
			r.maxWaitDuration = infinityDuration
		}
	}
}