trait Lens[Container, A] extends Serializable
- Alphabetic
- By Inheritance
- Lens
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
get(c: Container): A
get knows how to extract some field of type
A
from a container -
abstract
def
set(a: A): Mutation[Container]
Represents an assignment operator.
Represents an assignment operator.
Given a value of type A, sets knows how to transform a container such that
a
is assigned to the field.We must have get(set(a)(c)) == a
Concrete Value Members
-
def
:=(a: A): Mutation[Container]
alias to set
-
def
compose[B](other: Lens[A, B]): Lens[Container, B]
Composes two lenses, this enables nesting.
Composes two lenses, this enables nesting.
If our field of type A has a sub-field of type B, then given a lens for it (other: Lens[A, B]) we can create a single lens from Container to B.
-
def
modify(f: (A) ⇒ A): Mutation[Container]
Represent an update operator (like x.y += 1 )
-
def
setIfDefined(aOpt: Option[A]): Mutation[Container]
Optional assignment.
Optional assignment.
Given a
Some[A]
, assign theSome
's value to the field. GivenNone
, the container is unchanged. -
def
zip[B](other: Lens[Container, B]): Lens[Container, (A, B)]
Given two lenses with the same origin, returns a new lens that can mutate both values represented by both lenses through a tuple.