A Differ[Value, Patch]
knows how to compare an old value and new value of
type Value
to produce a patch of type Patch
that describes the
differences between those values. A Differ
also knows how to apply a patch
to an old value to produce a new value that represents the old value updated
with the changes described by the patch.
A Differ
can be used to construct a FiberRef
supporting compositional
updates using the FiberRef.makePatch
constructor.
The Differ
companion object contains constructors for Differ
values for
common data types such as Chunk
, Map
, and Set``. In addition,
Differvalues can be transformed using the
transformoperator and combined using the
orElseEitherand
zipoperators. This allows creating
Differ` values
for arbitrarily complex data types compositionally.
- Companion:
- object
Value members
Abstract methods
Combines two patches to produce a new patch that describes the updates of
the first patch and then the updates of the second patch. The combine
operation should be associative. In addition, if the combine operation is
commutative then joining multiple fibers concurrently will result in
deterministic FiberRef
values.
Combines two patches to produce a new patch that describes the updates of
the first patch and then the updates of the second patch. The combine
operation should be associative. In addition, if the combine operation is
commutative then joining multiple fibers concurrently will result in
deterministic FiberRef
values.
Constructs a patch describing the updates to a value from an old value and a new value.
Constructs a patch describing the updates to a value from an old value and a new value.
Concrete methods
Combines this differ and the specified differ to produce a differ that knows how to diff the sum of their values.
Combines this differ and the specified differ to produce a differ that knows how to diff the sum of their values.
Transforms the type of values that this differ knows how to differ using the specified functions that map the new and old value types to each other.
Transforms the type of values that this differ knows how to differ using the specified functions that map the new and old value types to each other.