docs: private State reservePermissions(final RateLimiterConfig config, final long timeoutInNanos,
                                       final long cycle, final int permissions, final long nanosToWait) {
          boolean canAcquireInTime = timeoutInNanos >= nanosToWait;
          int permissionsWithReservation = permissions;
          if (canAcquireInTime) {
              permissionsWithReservation--;
          }
          return new State(config, cycle, permissionsWithReservation, nanosToWait);
      }