reactify

package reactify

Type members

Classlikes

class Channel[T] extends Reactive[T] with Mutable[T]

Channel is a stateless Reactive implementation exposing a public method to fire values.

Channel is a stateless Reactive implementation exposing a public method to fire values.

Type Params
T

the type of value this Reactive receives

Companion
object
object Channel
Companion
class
class Dep[T, R] extends Reactive[T] with Stateful[T] with Mutable[T]

Dep allows creation of a dependent Var on another Var allowing conversion between the two. This can be useful for different representations of the same value. For example, in a graphical environment left, center, and right are all different representations of the value (horizontal position). Maintaining three distinct values while keeping them in-sync is painful. With Dep you can simply define one Var and two Dep values like:

Dep allows creation of a dependent Var on another Var allowing conversion between the two. This can be useful for different representations of the same value. For example, in a graphical environment left, center, and right are all different representations of the value (horizontal position). Maintaining three distinct values while keeping them in-sync is painful. With Dep you can simply define one Var and two Dep values like:

val left: Var[Double] = Var(0.0) val width: Var[Double] = Var(0.0) val center: Dep[Double, Double] = Dep(left)(_ + (width / 2.0), _ - (width / 2.0)) val right: Dep[Double, Double] = Dep(left)(_ + width, _ - width)

Now, modification to left, center, or right will maintain the appropriate value for each without any additional boilerplate.

Type Params
R

the type that this Dep receives

T

the type of value this Reactive receives

Companion
object
object Dep
Companion
class
implicit
class ListVar[T](v: Var[List[T]])

Syntactic sugar for mutating collections in a Var

Syntactic sugar for mutating collections in a Var

trait Mutable[T]

Mutable represents a reactive element that has mutable state

Mutable represents a reactive element that has mutable state

object Priority

Convenience values for Priorities

Convenience values for Priorities

trait Reactive[T]

Reactive is the core trait for Reactify. The basic premise is that a Reactive represents an instance that can attach Reactions and fire T and are received by those Reactions.

Reactive is the core trait for Reactify. The basic premise is that a Reactive represents an instance that can attach Reactions and fire T and are received by those Reactions.

Type Params
T

the type of value this Reactive receives

Companion
object
object Reactive
Companion
class
trait Stateful[T] extends Reactive[T]
class Trigger extends Channel[Unit]

Trigger is a convenience class wrapping Channel[Unit] specifically for scenarios where the value doesn't matter, just the reactions themselves.

Trigger is a convenience class wrapping Channel[Unit] specifically for scenarios where the value doesn't matter, just the reactions themselves.

Companion
object
object Trigger
Companion
class
class Val[T] extends Reactive[T] with Stateful[T]
Companion
object
object Val
Companion
class
class Var[T] extends Val[T] with Mutable[T]

Var represents the combination of Val and Channel into a stateful and mutable underlying value.

Var represents the combination of Val and Channel into a stateful and mutable underlying value.

Type Params
T

the type of value this Reactive receives

Companion
object
object Var
Companion
class
implicit
class VectorVar[T](v: Var[Vector[T]])

Implicits

Implicits

final implicit
def ListVar[T](v: Var[List[T]]): ListVar[T]

Syntactic sugar for mutating collections in a Var

Syntactic sugar for mutating collections in a Var

final implicit
def VectorVar[T](v: Var[Vector[T]]): VectorVar[T]
implicit
def stateful2Value[T](v: Stateful[T]): T