@SuppressWarnings("OptionalGetWithoutIsPresent")
    static RetryRule of(Iterable<? extends RetryRule> retryRules) {
        requireNonNull(retryRules, "retryRules");
        checkArgument(!Iterables.isEmpty(retryRules), "retryRules can't be empty.");
        if (Iterables.size(retryRules) == 1) {
            return Iterables.get(retryRules, 0);
        }

        @SuppressWarnings("unchecked")
        final Iterable<RetryRule> cast = (Iterable<RetryRule>) retryRules;
        return Streams.stream(cast).reduce(RetryRule::orElse).get();
    }
Returns a {@link RetryRule} that combines all the {@link RetryRule} of
the {@code retryRules}.
core/src/main/java/com/linecorp/armeria/client/retry/RetryRule.java