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.

35 lines
1.1 KiB

3 years ago
  1. package outwatchapp
  2. import colibri.Sink
  3. import nova.monadic_sfx.util.reactive.store.MonixProSubject
  4. import cats.effect.Sync
  5. import colibri.CreateProSubject
  6. import colibri.Source
  7. import colibri.LiftSink
  8. import monix.reactive.Observer
  9. import colibri.LiftSource
  10. import monix.reactive.Observable
  11. import colibri.ext.monix._
  12. import monix.execution.Scheduler
  13. import monix.execution.Ack
  14. package object implicits {
  15. // implicit def sinkForMyMonixProSub[A, M] =
  16. // new Sink[MonixProSubject[A, M]] {}\
  17. // implicit val monixCreateProSubject = new CreateProSubject[MonixProSubject] {
  18. // @inline def from[SI[_]: Sink, SO[_]: Source, I, O](
  19. // sink: SI[I],
  20. // source: SO[O]
  21. // ): MonixProSubject[I, O] = MonixProSubject.from(
  22. // LiftSink[Observer].lift(sink),
  23. // LiftSource[Observable].lift(source)
  24. // )
  25. // }
  26. implicit class Ops[A](val sink: Observer[A]) {
  27. @inline def liftSink[G[_]: LiftSink]: G[A] = LiftSink[G].lift(sink)
  28. }
  29. implicit class Ops2[A](val source: Observable[A])(implicit s: Scheduler) {
  30. @inline def liftSource[G[_]: LiftSource]: G[A] = LiftSource[G].lift(source)
  31. }
  32. }