trait Var[A] extends SignalSource[A] with Sink[A] with Named
Var is essentially a Signal that you can write to, so it's a source of state like EventBus is a source of events.
There are two kinds of Vars: SourceVar and DerivedVar. The latter you can obtain by calling zoom(a => b, b => a) on a Var, however, unlike SourceVar, DerivedVar requires an Owner in order to run.
- Alphabetic
- By Inheritance
- Var
- Named
- Sink
- SignalSource
- Source
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract val signal: StrictSignal[A]
Concrete Value Members
- 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 asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def defaultDisplayName: String
This is the method that subclasses override to preserve the user's ability to set custom display names.
This is the method that subclasses override to preserve the user's ability to set custom display names.
- Attributes
- protected
- Definition Classes
- Named
- final def displayName: String
- Definition Classes
- Named
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val maybeDisplayName: UndefOr[String]
This name should identify the instance (observable or observer) uniquely enough for your purposes.
This name should identify the instance (observable or observer) uniquely enough for your purposes. You can read / write it to simplify debugging. Airstream uses this in
debugLog*methods. In the future, we will expand on this. #TODO[Debug] We don't use this to its full potential yet.- Attributes
- protected[this]
- Definition Classes
- Named
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def now(): A
- Annotations
- @inline()
- Exceptions thrown
Exceptionif currentValue is a Failure
- final def set(value: A): Unit
- def setDisplayName(name: String): Var.this.type
Set the display name for this instance (observable or observer).
Set the display name for this instance (observable or observer). - This method modifies the instance and returns
this. It does not create a new instance. - New name you set will override the previous name, if any. This might change in the future. For the sake of sanity, don't call this more than once for the same instance. - If display name is set, toString will output it instead of the standard type@hashcode string- Definition Classes
- Named
- final def setError(error: Throwable): Unit
- def setTry(tryValue: Try[A]): Unit
- def someWriter[V](implicit evidence: <:<[Option[V], A]): Observer[V]
Write values into a Var of Option[V] without manually wrapping in Some()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toObservable: Signal[A]
- Definition Classes
- Var → SignalSource → Source
- def toObserver: Observer[A]
- final def toString(): String
Override defaultDisplayName instead of this, if you need to.
Override defaultDisplayName instead of this, if you need to.
- Definition Classes
- Named → AnyRef → Any
- def tryNow(): Try[A]
- Annotations
- @inline()
- def tryUpdate(mod: (Try[A]) => Try[A]): Unit
- mod
Note: must not throw
- Exceptions thrown
Exceptionifmodthrows
- def tryUpdater[B](mod: (Try[A], B) => Try[A]): Observer[B]
- mod
(currValue, nextInput) => nextValue Note: Must not throw!
- def update(mod: (A) => A): Unit
Do not use on failed Vars.
Do not use on failed Vars. Use tryUpdate on those.
- mod
Note: guarded against exceptions
- def updater[B](mod: (A, B) => A): Observer[B]
An observer much like writer, but can compose input events with the current value of the var, for example:
An observer much like writer, but can compose input events with the current value of the var, for example:
val v = Var(List(1, 2, 3)) val appender = v.updater((acc, nextItem) => acc :+ nextItem) appender.onNext(4) // v now contains List(1, 2, 3, 4)
Do not use on failed Vars. Use tryUpdater on those.
- mod
(currValue, nextInput) => nextValue
- 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]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- val writer: Observer[A]
- def zoom[B](in: (A) => B)(out: (B) => A)(implicit owner: Owner): Var[B]
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated