package nova.monadic_sfx import monix.eval.TaskLike import monix.reactive.Observable import monix.bio.IO package object implicits extends MySfxObservableImplicits with JavaFXMonixObservables { implicit final class MonixEvalTaskExt[T](private val task: monix.eval.Task[T]) extends AnyVal { def toIO = IO.deferAction(implicit s => IO.from(task)) } implicit final class MonixBioTaskExt[T](private val task: monix.bio.Task[T]) extends AnyVal { def toTask = monix.eval.Task.deferAction(implicit s => monix.eval.Task.from(task)) } implicit class SttpWsOps[F[_]](private val ws: sttp.client.ws.WebSocket[F]) extends AnyVal { def observableSource(implicit F: TaskLike[F]) = Observable.repeatEvalF(ws.receiveText()) } } // implicit class NodeExt(val node: Node) { // def lookup2[T <: SFXDelegate[_]]( // selector: String // )(implicit c: ClassTag[T]) = { // val t = c.runtimeClass // Option(node.delegate.lookup(selector)) match { // case Some(value) => // if (value.getClass == t) Some(value) else None // case None => None // } // } // val x = node.lookup2("") // }