@UnstableApi
    @Override
    default HttpResponse unsplit() {
        // TODO(ikhoon): Provide an optimized implementation for unsplit().
        final CompletableFuture<HttpResponse> future = headers().handle((headers, cause) -> {
            if (cause != null) {
                return HttpResponse.ofFailure(cause);
            }

            final CompletableFuture<HttpHeaders> trailersFuture = trailers().thenApply(trailers -> {
                if (trailers.isEmpty()) {
                    // An empty trailers means that the response does not have trailers.
                    return null;
                } else {
                    return trailers;
                }
            });
            return HttpResponse.of(headers, body(), trailersFuture);
        });
        return HttpResponse.of(future);
    }
Combines the split {@link #headers()}, {@link #body()} and {@link #trailers()} into a single
{@link HttpResponse}.

<p>Note that this method can only be used before subscribing to {@link #body()}.
core/src/main/java/com/linecorp/armeria/common/SplitHttpResponse.java