trait ModelRW[M, S] extends ModelR[M, S]
Base trait for all model writers
- M
Type of the base model
- S
Type of the reader/writer value
- Alphabetic
- By Inheritance
- ModelRW
- ModelR
- ModelRO
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
Abstract Value Members
-
abstract
def
===(that: S): Boolean
Checks if
that
is equal tothis
using an appropriate equality checkChecks if
that
is equal tothis
using an appropriate equality check- that
Value to compare with
- Definition Classes
- ModelRO
-
abstract
def
eval(model: M): S
Evaluates the reader against a supplied
model
Evaluates the reader against a supplied
model
- Definition Classes
- ModelR
-
abstract
def
root: ModelR[M, M]
Returns the root model reader of this reader
Returns the root model reader of this reader
- Definition Classes
- ModelR
-
abstract
def
updated(newValue: S): M
Updates the model using the value provided and returns the updated model.
-
abstract
def
updatedWith(model: M, newValue: S): M
Updates the supplied model with the value provided and returns the updated model.
-
abstract
def
value: S
Returns the value of the reader
Returns the value of the reader
- Definition Classes
- ModelRO
-
abstract
def
zip[SS](that: ModelR[M, SS])(implicit feqS: FastEq[_ >: S], feqSS: FastEq[_ >: SS]): ModelR[M, (S, SS)]
Combines this reader with another reader to provide a new reader returning a tuple of the values of the two original readers.
Combines this reader with another reader to provide a new reader returning a tuple of the values of the two original readers.
- that
The other reader
- Definition Classes
- ModelR
-
abstract
def
zoom[T](get: (S) ⇒ T)(implicit feq: FastEq[_ >: T]): NewR[T]
Zooms into the model using the provided accessor function
Zooms into the model using the provided accessor function
- get
Function to go from current reader to a new value
- Definition Classes
- ModelRO
-
abstract
def
zoomFlatMap[F[_], A, B](fa: (S) ⇒ F[A])(f: (A) ⇒ F[B])(implicit monad: Monad[F], feq: FastEq[_ >: B]): NewR[F[B]]
Zooms into the model and flatMaps over the zoomed value, which must be of type
F[A]
Zooms into the model and flatMaps over the zoomed value, which must be of type
F[A]
- fa
Zooming function
- f
The function to apply, must return a value of type
F[B]
- Definition Classes
- ModelRO
-
abstract
def
zoomFlatMapRW[F[_], A, B](fa: (S) ⇒ F[A])(f: (A) ⇒ F[B])(set: (S, F[B]) ⇒ S)(implicit monad: Monad[F], feq: FastEq[_ >: B]): ModelRW[M, F[B]]
Zooms into the model and flatMaps over the zoomed value, which must be of type
F[A]
.Zooms into the model and flatMaps over the zoomed value, which must be of type
F[A]
. Theset
function is used to update the model with a new value.- fa
Zooming function
- f
The function to apply
- set
Function to update the model with a new value
-
abstract
def
zoomMap[F[_], A, B](fa: (S) ⇒ F[A])(f: (A) ⇒ B)(implicit monad: Monad[F], feq: FastEq[_ >: B]): NewR[F[B]]
Zooms into the model and maps over the zoomed value, which must be of type
F[A]
Zooms into the model and maps over the zoomed value, which must be of type
F[A]
- fa
Zooming function
- f
The function to apply
- Definition Classes
- ModelRO
-
abstract
def
zoomMapRW[F[_], A, B](fa: (S) ⇒ F[A])(f: (A) ⇒ B)(set: (S, F[B]) ⇒ S)(implicit monad: Monad[F], feq: FastEq[_ >: B]): ModelRW[M, F[B]]
Zooms into the model and maps over the zoomed value, which must be of type
F[A]
.Zooms into the model and maps over the zoomed value, which must be of type
F[A]
. Theset
function is used to update the model with a new value.- fa
Zooming function
- f
The function to apply
- set
Function to update the model with a new value
-
abstract
def
zoomRW[T](get: (S) ⇒ T)(set: (S, T) ⇒ S)(implicit feq: FastEq[_ >: T]): ModelRW[M, T]
Zooms into the model using the provided
get
function.Zooms into the model using the provided
get
function. Theset
function is used to update the model with a new value.- get
Function to go from current reader to a new value
- set
Function to update the model with a new value
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
=!=(that: S): Boolean
- Definition Classes
- ModelRO
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
apply(): S
Returns the value of the reader
Returns the value of the reader
- Definition Classes
- ModelRO
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
flatMap[F[_], A, B](f: (A) ⇒ F[B])(implicit ev: =:=[S, F[A]], monad: Monad[F], feq: FastEq[_ >: B]): NewR[F[B]]
FlatMaps over current reader into a new value provided by
f
.FlatMaps over current reader into a new value provided by
f
. Reader typeS
must be of typeF[A]
, for exampleOption[A]
.- f
The function to apply, must return a value of type
F[B]
- Definition Classes
- ModelRO
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
map[F[_], A, B](f: (A) ⇒ B)(implicit ev: =:=[S, F[A]], monad: Monad[F], feq: FastEq[_ >: B]): NewR[F[B]]
Maps over current reader into a new value provided by
f
.Maps over current reader into a new value provided by
f
. Reader typeS
must be of typeF[A]
, for exampleOption[A]
.- f
The function to apply
- Definition Classes
- ModelRO
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
macro
def
zoomTo[T](field: (S) ⇒ T): ModelRW[M, T]
An easier way to zoom into a RW model by just specifying a single chained accessor for the field.
An easier way to zoom into a RW model by just specifying a single chained accessor for the field. This works for cases like
zoomTo(_.a.b.c)
but not for more complex cases such aszoomTo(_.a.b(0))
. Uses a macro to generate appropriate update function.- field
Field to access in the model