default CompletableFuture<List<T>> collect() {
        return collect(EMPTY_OPTIONS);
    }
Collects the elements published by this {@link StreamMessage}.
The returned {@link CompletableFuture} will be notified when the elements are fully consumed.

<p>Note that if this {@link StreamMessage} was subscribed by other {@link Subscriber} already,
the returned {@link CompletableFuture} will be completed with an {@link IllegalStateException}.

<pre>{@code
StreamMessage<Integer> stream = StreamMessage.of(1, 2, 3);
CompletableFuture<List<Integer>> collected = stream.collect();
assert collected.join().equals(List.of(1, 2, 3));
}</pre>
core/src/main/java/com/linecorp/armeria/common/stream/StreamMessage.java