default

rescala.`package`.default
object default extends FromScheduler[parrp.BundleState]

REScala has two main abstractions. rescala.default.Event and rescala.default.Signal commonly referred to as reactives. Use rescala.default.Var to create signal sources and rescala.default.Evt to create event sources.

Events and signals can be created from other reactives by using combinators, signals additionally can be created using rescala.default.Signal expressions.

Attributes

Graph
Supertypes
class FromScheduler[parrp.BundleState]
trait Interface
trait Operators
trait SourceBundle
trait SignalBundle
trait EventBundle
trait FoldBundle
class Object
trait Matchable
class Any
Show all
Self type
default.type

Members list

Grouped members

internal

Attributes

Inherited from:
Interface
override val scheduler: Scheduler[parrp.BundleState]

Attributes

Inherited from:
FromScheduler

create

opaque object Event

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 Object
trait Matchable
class Any
final def Evt[A]()(implicit ticket: CreationTicket[BundleState]): Evt[A]

Attributes

Inherited from:
SourceBundle
object Signal

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 Object
trait Matchable
class Any
object Var

Creates new Vars

Creates new Vars

Attributes

Inherited from:
SourceBundle
Supertypes
class Object
trait Matchable
class Any

update

def transaction[R](initialWrites: of[BundleState]*)(admissionPhase: (AdmissionTicket[BundleState]) => R): R

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) }

Inherited from:
Interface
def transactionWithWrapup[I, R](iw: of[BundleState]*)(ap: (AdmissionTicket[BundleState]) => I)(wrapUp: (I, Transaction[BundleState]) => R): R

Executes a transaction with WrapUpPhase.

Executes a transaction with WrapUpPhase.

Attributes

See also

transaction

Inherited from:
Interface

Type members

Inherited classlikes

trait Event[+T] extends MacroAccess[Option[T]], Disconnectable

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
trait MacroAccess[Option[T]]
trait ReadAs[Option[T]]
trait ReSource
class Object
trait Matchable
class Any
Show all
Known subtypes
class Evt[T]
object Events

Attributes

Inherited from:
EventBundle
Supertypes
class Object
trait Matchable
class Any
class Evt[T] extends Base[BundleState, Pulse[T]], Source[T], Event[T]

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 MacroAccess[Option[T]]
trait ReadAs[Option[T]]
trait Source[T]
class Base[BundleState, Pulse[T]]
trait ReSource
class Object
trait Matchable
class Any
Show all
trait Flatten[-A, R]

Attributes

Inherited from:
FlattenBundle
Supertypes
class Object
trait Matchable
class Any
object Fold

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 Object
trait Matchable
class Any
trait Signal[+T] extends Disconnectable, MacroAccess[T], ReSource

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 ReSource
class Object
trait Matchable
class Any
Show all
Known subtypes
class Var[A]
trait Source[T] extends ReSource

Attributes

Inherited from:
SourceBundle
Supertypes
trait ReSource
class Object
trait Matchable
class Any
Known subtypes
class Evt[T]
class Var[A]
class Var[A] extends Base[BundleState, Pulse[A]], Source[A], Signal[A]

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 Source[A]
class Base[BundleState, Pulse[A]]
trait ReSource
class Object
trait Matchable
class Any
Show all

Inherited types

override type BundleState[V] = parrp.BundleState[V]

Attributes

Inherited from:
FromScheduler

Value members

Inherited methods

inline def current[S](using fs: FoldState[S]): S

Attributes

Inherited from:
FoldBundle
def firstFiringEvent[B, T <: (IterableOps), Evnt <: (Event)](using CreationTicket[BundleState]): Flatten[Signal[T[Evnt[B]]], Event[B]]

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
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Interface -> Any
Inherited from:
Interface

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

extension [T](e: Event[T])
infix inline def act[S](inline f: (FoldState[S]) ?=> T => S): Branch[S]

Attributes

Inherited from:
FoldBundle

Implicits

Inherited implicits

implicit def flattenImplicitForArraySignals[B : ClassTag, Sig <: (Signal)](implicit evidence$1: ClassTag[B], CreationTicket[BundleState]): Flatten[Signal[Array[Sig[B]]], Signal[Array[B]]]

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
implicit def flattenImplicitForIterableSignals[B, Iter <: (IterableOps), Sig <: (Signal)](using CreationTicket[BundleState]): Flatten[Signal[Iter[Sig[B]]], Signal[Iter[B]]]

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
implicit def flattenImplicitForevent[A, B, Evnt <: (Event)](using CreationTicket[BundleState]): Flatten[Signal[Evnt[B]], Event[B]]

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