All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.metastack.metarx.Opt.scala Maven / Gradle / Ivy

The newest version!
package pl.metastack.metarx

import scala.concurrent.{ExecutionContext, Future}

object Opt {
  @inline def apply[T](): Opt[T] = Var(Option.empty[T])
  @inline def apply[T](value: T): Opt[T] = Var(Some(value))

  def from[T](future: Future[T])(implicit exec: ExecutionContext): Opt[T] = {
    val opt = Opt[T]()
    future.foreach(v => opt.set(Some(v)))
    opt
  }

  def fromOption[T](future: Future[Option[T]])
                   (implicit exec: ExecutionContext): Opt[T] = {
    val opt = Opt[T]()
    future.foreach(opt.set)
    opt
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy