Class/Object

io.fsq.common.concurrent

FutureOption

Related Docs: object FutureOption | package concurrent

Permalink

final class FutureOption[+A] extends AnyVal

A monadic wrapper around the common case of Future[Option[A]]. Allows you to use for-comprehensions around Future[Option[A]] without needing to special case each None case.

Example:

val result: Future[Option[Venue]] = (for { user <- FutureOption(services.futureDb.fetchOne(Q(User).where(_.id eqs 32))) tip <- FutureOption(services.futureDb.fetchOne(Q(Tip).where(_.userid eqs user.id))) venue <- FutureOption(services.futureDb.fetchOne(Q(Venue).where(_.id eqs tip.venueid))) if !venue.isHome } yield venue).resolve

Example 2: val sixteenFOpt = FutureOption(Future.value(Some(16))) for { s <- sixteenFOpt } { println(s) } This will output "16".

FutureOption is a value class. http://docs.scala-lang.org/overviews/core/value-classes.html

Linear Supertypes
AnyVal, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FutureOption
  2. AnyVal
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FutureOption(resolve: Future[Option[A]])

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def filter(f: (A) ⇒ Boolean): FutureOption[A]

    Permalink
  6. def flatMap[T](f: (A) ⇒ FutureOption[T]): FutureOption[T]

    Permalink
  7. def flatten[T](implicit asFutureOption: (A) ⇒ FutureOption[T]): FutureOption[T]

    Permalink
  8. def foreach[T](f: (A) ⇒ Unit): Unit

    Permalink
  9. def getClass(): Class[_ <: AnyVal]

    Permalink
    Definition Classes
    AnyVal → Any
  10. def getOrElse[B >: A](f: ⇒ Future[B]): Future[B]

    Permalink
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. def join[T](other: FutureOption[T]): FutureOption[(A, T)]

    Permalink
  13. def map[T](f: (A) ⇒ T): FutureOption[T]

    Permalink
  14. def orElse[B >: A](f: ⇒ FutureOption[B]): FutureOption[B]

    Permalink
  15. val resolve: Future[Option[A]]

    Permalink
  16. def toString(): String

    Permalink
    Definition Classes
    Any
  17. def withFilter(f: (A) ⇒ Boolean): FutureOption[A]

    Permalink

Inherited from AnyVal

Inherited from Any

Ungrouped