vert-x3 / vertx-rx

Reactive Extensions for Vert.x
Apache License 2.0
147 stars 72 forks source link

Rx overloaded methods support for Single and Function for RxJava2 #237

Closed vietj closed 4 years ago

vietj commented 4 years ago

RxJava2 generates overloaded versions of methods that use a ReadStream method as argument with an alias to Flowable and Observable, e.g:

void foo(ReadStream<Buffer> stream);
void foo(Flowable<Buffer> stream);
void foo(Observable<Buffer> stream);

We should improve this and also support io.vertx.core.Future:

void foo(Future<Buffer> stream);
void foo(Single<Buffer> stream);
void foo(Future<@Nullable Buffer> stream);
void foo(Single<Maybe> stream);
void foo(Future<Void> stream);
void foo(Completable stream);

And support function recursion:

void foo(Function<ReadStream<Buffer>, Future<String>> stream);
void foo(io.reactivex.functions.Function<Flowable<Buffer>, Single<Buffer>> stream);

This will however removes the support for Observable and only keep Flowable.