static <T> SimpleLoadBalancer<T> ofWeightedRoundRobin(Iterable<? extends T> candidates,
                                                          ToIntFunction<? super T> weightFunction) {
        requireNonNull(candidates, "candidates");
        requireNonNull(weightFunction, "weightFunction");
        //noinspection unchecked
        return new WeightedRoundRobinLoadBalancer<>((Iterable<T>) candidates,
                                                    (ToIntFunction<T>) weightFunction);
    }
Returns a {@link LoadBalancer} that selects a candidate using the weighted round-robin strategy that
implements <a href="https://en.wikipedia.org/wiki/Weighted_round_robin#Interleaved_WRR">Interleaved WRR</a>
algorithm.

@param weightFunction the weight function which returns the weight of the candidate.
core/src/main/java/com/linecorp/armeria/common/loadbalancer/LoadBalancer.java