googleapis / googleapis/google-cloud-java

[sdk-platform-java] Make ServerStream support spliterator()

オープン
#12,548 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
priority: p3 type: feature request
主要言語
Java
スター
2.1k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
154

説明

**Affects :** 1.58.2

`ServerStream` currently doesn't allow to call the `iterator()` method more than once. However some tool that consumes this iterable may want to check the characteristics. E.g the reactor project (webflux) which is now checking the characteristics of the iterator via `Iterable.spliterator()`. However this has the side effect of invoking the default method which invokes the `iterator()` method, thus setting the `consumed` boolean to `true`.

_FluxIterable_
```java
static boolean checkFinite(Iterable iterable) {
return iterable instanceof Collection || iterable.spliterator().hasCharacteristics(Spliterator.SIZED);
}
```

_Iterable_
```java
default Spliterator spliterator() {
return Spliterators.spliteratorUnknownSize(iterator(), 0);
}
```

While this can be worked around for this particular use case, it would be nice if the `ServerStream` provide basic support for spliterators.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。