@SuppressWarnings("OptionalGetWithoutIsPresent")
    static <T extends Response> RetryRuleWithContent<T> of(
            Iterable<? extends RetryRuleWithContent<T>> retryRules) {
        requireNonNull(retryRules, "retryRules");
        checkArgument(!Iterables.isEmpty(retryRules), "retryRules should not be empty.");
        if (Iterables.size(retryRules) == 1) {
            return Iterables.get(retryRules, 0);
        }

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