Rescala has two main abstractions. Event and Signal commonly referred to as reactives. Use Var to create signal sources and Evt to create event sources.
Events and signals can be created from other reactives by using combinators, signals additionally can be created using Signal expressions.
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
trait Operatorstrait SourceBundletrait FlattenBundletrait SignalBundletrait EventBundletrait FoldBundleclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class FullMVApiobject defaultclass FromScheduler[S]object IncrementalApiobject defaultobject ParRPDefaultShow all
Members list
Grouped members
Create new reactives
Similar to rescala.operator.SignalBundle.Signal expressions, but resulting in an event. Accessed events return options depending on whether they fire or not, and the complete result of the expression is an event as well.
Similar to rescala.operator.SignalBundle.Signal expressions, but resulting in an event. Accessed events return options depending on whether they fire or not, and the complete result of the expression is an event as well.
Attributes
- See also
- Inherited from:
- EventBundle
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Inherited from:
- SourceBundle
A signal expression can be used to create signals accessing arbitrary other signals. Use the apply method on a signal to access its value inside of a signal expression.
A signal expression can be used to create signals accessing arbitrary other signals. Use the apply method on a signal to access its value inside of a signal expression.
val a: Signal[Int]
val b: Signal[Int]
val result: Signal[String] = Signal { a().toString + b().toString}
Attributes
- Inherited from:
- SignalBundle
- Supertypes
-
class Objecttrait Matchableclass Any
Creates new Vars
Creates new Vars
Attributes
- Inherited from:
- SourceBundle
- Supertypes
-
class Objecttrait Matchableclass Any
Update multiple reactives
Executes a transaction.
Executes a transaction.
Type parameters
- R
-
Result type of the admission function
Value parameters
- admissionPhase
-
An admission function that may rescala.operator.SourceBundle.Evt.admit / rescala.operator.SourceBundle.Var.admit arbitrary input changes that will be applied as an atomic transaction at the end.
- initialWrites
-
All inputs that might be changed by the transaction
Attributes
- Returns
-
Result of the admission function
- Example
-
transaction(a, b){ implicit at => a.set(5); b.set(1); at.now(a) }
Executes a transaction with WrapUpPhase.
Executes a transaction with WrapUpPhase.
Attributes
- See also
-
transaction
Advanced functions used when extending REScala
Methods and type aliases for advanced usages, these are most relevant to abstract over multiple scheduler implementations.
Attributes
Attributes
Type members
Inherited classlikes
Events only propagate a value when they are changing, when the system is at rest, events have no values.
Events only propagate a value when they are changing, when the system is at rest, events have no values.
Note: We hide implicit parameters of the API in the documentation. They are used to ensure correct creation, and you normally do not have to worry about them, except if you accidentally call the implicit parameter list, in which cas you may get cryptic errors. This is a scala limitation. We also hide the internal state parameter of passed and returned events.
Type parameters
- T
-
Value type of the event occurrences.
Attributes
- Inherited from:
- EventBundle
- Supertypes
- Known subtypes
-
class Evt[T]
Attributes
- Inherited from:
- EventBundle
- Supertypes
-
class Objecttrait Matchableclass Any
Source events with imperative occurrences
Source events with imperative occurrences
Type parameters
- S
-
Struct type used for the propagation of the event
- T
-
Type returned when the event fires
Value parameters
- initialState
-
of by the event
Attributes
- Inherited from:
- SourceBundle
- Supertypes
-
trait Event[T]trait Disconnectabletrait Source[T]trait ReSourceclass Objecttrait Matchableclass AnyShow all
Attributes
- Inherited from:
- FlattenBundle
- Supertypes
-
class Objecttrait Matchableclass Any
Folds when any one of a list of events occurs, if multiple events occur, every fold is executed in order.
Folds when any one of a list of events occurs, if multiple events occur, every fold is executed in order.
Example for a counter that can be reset:
Fold(0)(
add act { x => current + v },
reset act { _ => 0 }
)
Attributes
- Inherited from:
- FoldBundle
- Supertypes
-
class Objecttrait Matchableclass Any
Time changing value derived from the dependencies.
Time changing value derived from the dependencies.
Type parameters
- T
-
Type stored by the signal
Attributes
- Inherited from:
- SignalBundle
- Supertypes
-
trait MacroAccess[T]trait ReadAs[T]trait ReSourcetrait Disconnectableclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Var[A]
Attributes
- Inherited from:
- SourceBundle
- Supertypes
- Known subtypes
Source signals with imperatively updates.
Source signals with imperatively updates.
Type parameters
- A
-
Type stored by the signal
Attributes
- Inherited from:
- SourceBundle
- Supertypes
-
trait Signal[A]trait MacroAccess[A]trait ReadAs[A]trait Disconnectabletrait Source[A]trait ReSourceclass Objecttrait Matchableclass AnyShow all
Inherited types
Attributes
- Inherited from:
- Operators
Value members
Inherited methods
Attributes
- Inherited from:
- FoldBundle
Flatten a Signal[Traversable[Event[B]]] into a Event[B]. The new Event fires the value of any inner firing Event. If multiple inner Events fire, the first one in iteration order is selected.
Flatten a Signal[Traversable[Event[B]]] into a Event[B]. The new Event fires the value of any inner firing Event. If multiple inner Events fire, the first one in iteration order is selected.
Attributes
- Inherited from:
- FlattenBundle
Flatten a Signal[Traversable[Event[B]]] into a Event[Traversable[Option[B]]] where the new Event fires whenever any of the inner events fire
Flatten a Signal[Traversable[Event[B]]] into a Event[Traversable[Option[B]]] where the new Event fires whenever any of the inner events fire
Attributes
- Inherited from:
- FlattenBundle
Extensions
Inherited extensions
Attributes
- Inherited from:
- FoldBundle
Implicits
Inherited implicits
Flatten a Signal[Array[Signal[B]]] into a Signal[Array[B]] where the new Signal updates whenever any of the inner or the outer signal updates
Flatten a Signal[Array[Signal[B]]] into a Signal[Array[B]] where the new Signal updates whenever any of the inner or the outer signal updates
Attributes
- Inherited from:
- FlattenBundle
Flatten a Signal[Traversable[Signal[B]]] into a Signal[Traversable[B]] where the new Signal updates whenever any of the inner or the outer signal updates
Flatten a Signal[Traversable[Signal[B]]] into a Signal[Traversable[B]] where the new Signal updates whenever any of the inner or the outer signal updates
Attributes
- Inherited from:
- FlattenBundle
Flatten a Signal[Option[Signal[B]]] into a Signal[Option[B]] where the new Signal updates whenever any of the inner or the outer signal updates
Flatten a Signal[Option[Signal[B]]] into a Signal[Option[B]] where the new Signal updates whenever any of the inner or the outer signal updates
Attributes
- Inherited from:
- FlattenBundle
Flatten a Signal[Event[B]]] into a Event[B] where the new Event fires whenever the current inner event fires
Flatten a Signal[Event[B]]] into a Event[B] where the new Event fires whenever the current inner event fires
Attributes
- Inherited from:
- FlattenBundle
Flatten a Event[Option[B]] into a Event[B] that fires whenever the inner option is defined.
Flatten a Event[Option[B]] into a Event[B] that fires whenever the inner option is defined.
Attributes
- Inherited from:
- FlattenBundle
Flatten a Signal[Signal[B]] into a Signal[B] that changes whenever the outer or inner signal changes.
Flatten a Signal[Signal[B]] into a Signal[B] that changes whenever the outer or inner signal changes.
Attributes
- Inherited from:
- FlattenBundle