You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
755 B
23 lines
755 B
package nova.monadic_sfx.util.reactive
|
|
|
|
import scala.concurrent.Future
|
|
|
|
import monix.execution.Ack
|
|
import monix.execution.Cancelable
|
|
import monix.reactive.Observable
|
|
import monix.reactive.Observer
|
|
import monix.reactive.observers.Subscriber
|
|
|
|
object MonixProSubject {
|
|
def from[I, O](
|
|
observer: Observer[I],
|
|
observable: Observable[O]
|
|
): MonixProSubject[I, O] =
|
|
new Observable[O] with Observer[I] {
|
|
override def onNext(elem: I): Future[Ack] = observer.onNext(elem)
|
|
override def onError(ex: Throwable): Unit = observer.onError(ex)
|
|
override def onComplete(): Unit = observer.onComplete()
|
|
override def unsafeSubscribeFn(subscriber: Subscriber[O]): Cancelable =
|
|
observable.unsafeSubscribeFn(subscriber)
|
|
}
|
|
}
|