googleapis / googleapis/google-cloud-java

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

Ouverte
#12,548 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
priority: p3 type: feature request
Langage dominant
Java
Étoiles
2.1k
Forks
1.2k
Merge moyen
1 j 23 h
PR mergées (30 j)
154

Description

**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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.