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.

42 lines
1.1 KiB

3 years ago
3 years ago
3 years ago
3 years ago
  1. package nova.monadic_sfx
  2. import monix.eval.TaskLike
  3. import monix.reactive.Observable
  4. import monix.bio.IO
  5. package object implicits
  6. extends MySfxObservableImplicits
  7. with JavaFXMonixObservables {
  8. implicit final class MonixEvalTaskExt[T](private val task: monix.eval.Task[T])
  9. extends AnyVal {
  10. def toIO = IO.deferAction(implicit s => IO.from(task))
  11. }
  12. implicit final class MonixBioTaskExt[T](private val task: monix.bio.Task[T])
  13. extends AnyVal {
  14. def toTask =
  15. monix.eval.Task.deferAction(implicit s => monix.eval.Task.from(task))
  16. }
  17. implicit class SttpWsOps[F[_]](private val ws: sttp.client.ws.WebSocket[F])
  18. extends AnyVal {
  19. def observableSource(implicit F: TaskLike[F]) =
  20. Observable.repeatEvalF(ws.receiveText())
  21. }
  22. }
  23. // implicit class NodeExt(val node: Node) {
  24. // def lookup2[T <: SFXDelegate[_]](
  25. // selector: String
  26. // )(implicit c: ClassTag[T]) = {
  27. // val t = c.runtimeClass
  28. // Option(node.delegate.lookup(selector)) match {
  29. // case Some(value) =>
  30. // if (value.getClass == t) Some(value) else None
  31. // case None => None
  32. // }
  33. // }
  34. // val x = node.lookup2("")
  35. // }