trait RescalaInterface extends Operators
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.
- Grouped
- Alphabetic
- By Inheritance
- RescalaInterface
- Operators
- ObserveBundle
- Sources
- FlattenApi
- FlattenCollectionCompat
- SignalBundle
- SignalCompatBundle
- EventBundle
- EventCompatBundle
- ReadableMacroBundle
- DefaultImplementations
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait EventCompat[+T] extends operator.Operators.ReadableMacro[State, Option[T]]
- Definition Classes
- EventCompatBundle
- trait SignalCompat[+T] extends operator.Operators.ReadableMacro[State, T]
- Definition Classes
- SignalCompatBundle
- class UserDefinedFunction[+T, Dep, Cap] extends AnyRef
- Definition Classes
- SignalCompatBundle
- type CreationTicket = core.CreationTicket[State]
- Definition Classes
- Operators
- type DynamicTicket = core.DynamicTicket[State]
- Definition Classes
- Operators
- type ReSource = core.ReSource { type State[V] = RescalaInterface.this.State[V] }
- Definition Classes
- Operators
- type ScopeSearch = core.ScopeSearch[State]
- Definition Classes
- Operators
- abstract type State[_]
- Definition Classes
- Operators
- type StaticTicket = core.StaticTicket[State]
- Definition Classes
- Operators
- trait ReadableMacro[S[_], +A] extends ReadAs[S, A] with MacroAccess[A, ReadAs[S, A]]
- Definition Classes
- ReadableMacroBundle
- class ChangeEventImpl[T] extends Base[State, (Pulse[T], Pulse[Diff[T]])] with Derived with Operators.Event[Diff[T]] with DisconnectableImpl
- Definition Classes
- DefaultImplementations
- abstract class DerivedImpl[T] extends Base[State, Pulse[T]] with Derived with DisconnectableImpl
- Definition Classes
- DefaultImplementations
- class EventImpl[T] extends Operators.DerivedImpl[T] with Operators.Event[T]
- Definition Classes
- DefaultImplementations
- class SignalImpl[T] extends Operators.DerivedImpl[T] with Operators.Signal[T]
- Definition Classes
- DefaultImplementations
- trait Event[+T] extends Operators.EventCompat[T] with 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.
- T
Value type of the event occurrences.
- Definition Classes
- EventBundle
- trait Flatten[-A, R] extends AnyRef
- Definition Classes
- FlattenApi
- Annotations
- @implicitNotFound()
- trait ObserveInteract extends Observation
- Definition Classes
- ObserveBundle
- trait Signal[+T] extends Disconnectable with Operators.SignalCompat[T]
Time changing value derived from the dependencies.
Time changing value derived from the dependencies.
- T
Type stored by the signal
- Definition Classes
- SignalBundle
- class Evt[T] extends Base[State, Pulse[T]] with Operators.Source[T] with Operators.Event[T]
Source events with imperative occurrences
Source events with imperative occurrences
- T
Type returned when the event fires
- Definition Classes
- Sources
- trait Source[T] extends ReSource
- Definition Classes
- Sources
- class Var[A] extends Base[State, Pulse[A]] with Operators.Source[A] with Operators.Signal[A]
Source signals with imperatively updates.
Concrete Value Members
- object Event
Similar to rescala.compat.SignalCompatBundle.Signal expressions, but resulting in an event.
Similar to rescala.compat.SignalCompatBundle.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.
- Definition Classes
- EventCompatBundle
- See also
- object Signal
A signal expression can be used to create signals accessing arbitrary other signals.
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}
- Definition Classes
- SignalCompatBundle
- object UserDefinedFunction
- Definition Classes
- SignalCompatBundle
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def Evt[A]()(implicit ticket: CreationTicket): Evt[A]
- Definition Classes
- Sources
- implicit def OnEv[T](e: Event[T]): OnEv[T]
- implicit def OnEvs[T](e: => Seq[Event[T]]): OnEvs[T]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def firstFiringEvent[B, T[U] <: IterableOps[U, T, T[U]], Evnt[A1] <: Event[A1]](implicit ticket: CreationTicket): Flatten[Signal[T[Evnt[B]]], Event[B]]
Flatten a Signal[Traversable[Event[B]\]\] into a 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.
- Definition Classes
- FlattenCollectionCompat
- implicit def flattenImplicitForarraySignals[B, Sig[U] <: Signal[U]](implicit arg0: ClassTag[B], ticket: CreationTicket): 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
- Definition Classes
- FlattenApi
- implicit def flattenImplicitForevent[A, B, Evnt[A1] <: Event[A1]](implicit ticket: CreationTicket): 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
- Definition Classes
- FlattenApi
- implicit def flattenImplicitForoption[A, B](implicit ticket: CreationTicket): Flatten[Event[Option[B]], Event[B]]
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.
- Definition Classes
- FlattenApi
- implicit def flattenImplicitForoptionSignal[B, Sig[U] <: Signal[U]](implicit ticket: CreationTicket): Flatten[Signal[Option[Sig[B]]], Signal[Option[B]]]
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
- Definition Classes
- FlattenApi
- implicit def flattenImplicitForsignal[B](implicit ticket: CreationTicket): Flatten[Signal[Signal[B]], Signal[B]]
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.
- Definition Classes
- FlattenApi
- implicit def flattenImplicitFortraversableSignals[B, T[U] <: IterableOps[U, T, T[U]], Sig[A1] <: Signal[A1]](implicit ticket: CreationTicket): Flatten[Signal[T[Sig[B]]], Signal[T[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
- Definition Classes
- FlattenCollectionCompat
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- implicit def implicitScheduler: Scheduler[State]
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- RescalaInterface → AnyRef → Any
- def transaction[R](initialWrites: of[State]*)(admissionPhase: (AdmissionTicket[State]) => R): R
Executes a transaction.
Executes a transaction.
- R
Result type of the admission function
- initialWrites
All inputs that might be changed by the transaction
- admissionPhase
An admission function that may rescala.operator.Sources.Evt.admit / rescala.operator.Sources.Var.admit arbitrary input changes that will be applied as an atomic transaction at the end.
- returns
Result of the admission function
transaction(a, b){ implicit at => a.set(5); b.set(1); at.now(a) }
Example: - def transactionWithWrapup[I, R](iw: of[State]*)(ap: (AdmissionTicket[State]) => I)(wrapUp: (I, of[State]) => R): R
Executes a transaction with WrapUpPhase.
Executes a transaction with WrapUpPhase.
- See also
transaction
- def traversableOfAllOccuringEventValues[B, T[U] <: IterableOps[U, T, T[U]], Evnt[A1] <: Event[A1]](implicit ticket: CreationTicket): Flatten[Signal[T[Evnt[B]]], Event[T[Option[B]]]]
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
- Definition Classes
- FlattenCollectionCompat
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object Events
- Definition Classes
- EventBundle
- object Observe
observers are normale reactives that are configured by a function that converts the value of the input into an ObserveInteract
observers are normale reactives that are configured by a function that converts the value of the input into an ObserveInteract
- Definition Classes
- ObserveBundle
- object Signals
Functions to construct signals, you probably want to use signal expressions in rescala.interface.RescalaInterface.Signal for a nicer API.
Functions to construct signals, you probably want to use signal expressions in rescala.interface.RescalaInterface.Signal for a nicer API.
- Definition Classes
- SignalBundle
- object Var
Creates new Vars
Inherited from Operators
Inherited from ObserveBundle
Inherited from Sources
Inherited from FlattenApi
Inherited from FlattenCollectionCompat
Inherited from SignalBundle
Inherited from SignalCompatBundle
Inherited from EventBundle
Inherited from EventCompatBundle
Inherited from ReadableMacroBundle
Inherited from DefaultImplementations
Inherited from AnyRef
Inherited from Any
Create new reactives
Update multiple reactives
Advanced functions used when extending REScala
Methods and type aliases for advanced usages, these are most relevant to abstract over multiple scheduler implementations.