Packages

sealed trait Rx[+A] extends AnyRef

Reactive value of type A. Automatically recalculate on dependency update.

Self Type
Rx[A]
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Rx
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. def collect[B](f: PartialFunction[A, B])(b: B): Rx[B]

    Returns a new Rx with updates where f is defined and mapped by f.

    Returns a new Rx with updates where f is defined and mapped by f. If the first update is dropped, the default value is used instead.

  7. def dropIf[B >: A](f: (B) => Boolean)(b: B): Rx[B]

    Returns a new Rx without updates fulfilling a predicate.

    Returns a new Rx without updates fulfilling a predicate. If the first update is dropped, the default value is used instead.

    val numbers: Rx[Int] val even: Rx[Int] = numbers.dropIf(_ % 2 == 0)(-1) // numbers => 0 0 3 4 5 6 ... // even => -1 3 5 ...

  8. def dropRepeats: Rx[A]

    Drop repeated value of this Rx.

    Drop repeated value of this Rx.

    val numbers: Rx[Int] val noDups: Rx[Int] = numbers.dropRepeats // numbers => 0 0 3 3 5 5 5 4 ... // noDups => 0 3 5 4 ...

    Note: This could also be implemented in terms of keepIf, map, and foldp.

  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  12. def flatMap[B](f: (A) => Rx[B]): Rx[B]

    Dynamically switch between different Rxs according to the given function, applied on each element of this Rx.

    Dynamically switch between different Rxs according to the given function, applied on each element of this Rx. Each switch will cancel the subscriptions for the previous outgoing Rx and start a new subscription on the next Rx.

    Together with Rx#map and Rx.apply, flatMap forms a Monad. [Proof](https://github.com/OlivierBlanvillain/monadic-html/blob/master/monadic-rx-cats/src/main/scala/mhtml/cats.scala).

  13. def foldp[B](seed: B)(step: (B, A) => B): Rx[B]

    Produces a Rx containing cumulative results of applying a binary operator to each element of this Rx, starting from a seed and the current value of the upstream Rx, and moving forward in time; no internal state is maintained.

    Produces a Rx containing cumulative results of applying a binary operator to each element of this Rx, starting from a seed and the current value of the upstream Rx, and moving forward in time; no internal state is maintained.

    val numbers: Rx[Int] val folded: Rx[Int] = numbers.foldp(0)(_ + _) // numbers => 1 2 1 1 3 ... // folded => 1 3 4 5 8 ...

  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. val impure: RxImpureOps[A]
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. def keepIf[B >: A](f: (B) => Boolean)(b: B): Rx[B]

    Returns a new Rx with updates fulfilling a predicate.

    Returns a new Rx with updates fulfilling a predicate. If the first update is dropped, the default value is used instead.

    val numbers: Rx[Int] val even: Rx[Int] = numbers.keepIf(_ % 2 == 0)(-1) // numbers => 0 0 3 4 5 6 ... // even => 0 0 4 6 ...

  19. def map[B](f: (A) => B): Rx[B]

    Apply a function to each element of this Rx.

    Apply a function to each element of this Rx.

    val numbers: Rx[Int] val doubles: Rx[Int] = numbers.map(2.*) // numbers => 0 1 4 3 2 ... // doubles => 0 2 8 6 4 ...

  20. def merge[B >: A](other: Rx[B]): Rx[B]

    Merge two Rx into one.

    Merge two Rx into one. Updates coming from either of the incoming Rx trigger updates in the outgoing Rx. Upon creation, the outgoing Rx first receives the current value from this Rx, then from the other Rx.

    val r1: Rx[Int] val r2: Rx[Int] val merged: Rx[Int] = r1.merge(r2) // r1 => 0 8 3 ... // r2 => 1 4 3 ... // merged => 0 8 4 3 3 ...

    With this operation, Rx forms a Semigroup. [Proof](https://github.com/OlivierBlanvillain/monadic-html/blob/master/monadic-rx-cats/src/main/scala/mhtml/cats.scala). |+| syntax is available via the monadic-rx-cats package.

  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. def sampleOn[B](other: Rx[B]): Rx[A]

    Sample this Rx using another Rx: every time an event occurs on the second Rx the output updates with the latest value of this Rx.

    Sample this Rx using another Rx: every time an event occurs on the second Rx the output updates with the latest value of this Rx.

    val r1: Rx[Char] val r2: Rx[Int] val sp: Rx[Int] = r2.sampleOn(r1) // r1 => u u u u ... // r2 => 1 2 3 4 ... // sp => 1 3 3 4 ...

  25. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  26. def toString(): String
    Definition Classes
    AnyRef → Any
  27. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  30. def zip[B](other: Rx[B]): Rx[(A, B)]

    Create the Cartesian product of two Rx.

    Create the Cartesian product of two Rx. The output tuple contains the latest values from each input Rx, which updates whenever the value from either input Rx update. This method is faster than combining Rxs using for { a <- ra; b <- rb } yield (a, b).

    val r1: Rx[Int] val r2: Rx[Int] val zipped: Rx[Int] = r1.zip(r2) // r1 => 0 8 9 ... // r2 => 1 4 5 6 ... // zipped => (0,1) (8,1) (8,4) (8,5) (8,6) (9,6) ...

    This method, together with Rx.apply, forms am Applicative. mapN syntax is available via the monadic-rx-cats package.

Deprecated Value Members

  1. def product[B](other: Rx[B]): Rx[(A, B)]
    Annotations
    @deprecated
    Deprecated

    (Since version 0.3.3) Renamed to zip

Inherited from AnyRef

Inherited from Any

Ungrouped