diff --git a/src/main/java/it/tdlight/utils/MonoUtils.java b/src/main/java/it/tdlight/utils/MonoUtils.java index cfc6b4d..e1c6271 100644 --- a/src/main/java/it/tdlight/utils/MonoUtils.java +++ b/src/main/java/it/tdlight/utils/MonoUtils.java @@ -15,6 +15,7 @@ import io.vertx.reactivex.core.streams.Pipe; import io.vertx.reactivex.core.streams.ReadStream; import io.vertx.reactivex.core.streams.WriteStream; import it.tdlight.jni.TdApi; +import it.tdlight.jni.TdApi.Chat; import it.tdlight.jni.TdApi.Object; import it.tdlight.tdlibsession.td.TdError; import it.tdlight.tdlibsession.td.TdResult; @@ -29,6 +30,7 @@ import java.util.function.Consumer; import java.util.function.Supplier; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.reactivestreams.Publisher; import org.reactivestreams.Subscription; import org.warp.commonutils.concurrency.future.CompletableFutureUtils; import org.warp.commonutils.log.Logger; @@ -295,6 +297,10 @@ public class MonoUtils { return Mono.defer(() -> fromEmitResult(sink.tryEmitEmpty())); } + public static Mono emitEmpty(One sink) { + return Mono.defer(() -> fromEmitResult(sink.tryEmitEmpty())); + } + public static Mono emitError(Empty sink, Throwable value) { return Mono.defer(() -> fromEmitResult(sink.tryEmitError(value))); } @@ -435,6 +441,12 @@ public class MonoUtils { return mono.map(Optional::of).defaultIfEmpty(Optional.empty()); } + public static Mono isSet(Mono mono) { + return mono + .map(res -> true) + .defaultIfEmpty(false); + } + public static class SinkRWStream implements io.vertx.core.streams.WriteStream, io.vertx.core.streams.ReadStream { private final Many sink;