Optics

class Object
trait Matchable
class Any

Type members

Inherited classlikes

object Iso
Inherited from
OpticTypesModule
object Lens
Inherited from
OpticTypesModule
case class Optic[-GetWhole, -SetWholeBefore, -SetPiece, +GetError, +SetError, +GetPiece, +SetWholeAfter](getOptic: GetWhole => OpticResult[(GetError, SetWholeAfter), GetPiece], setOptic: SetPiece => SetWholeBefore => OpticResult[(SetError, SetWholeAfter), SetWholeAfter])

An Optic is able to get and set a piece of a whole, possibly failing. In the most general possible case the get and set types are distinct and getting may fail with a different error than setting.

An Optic is able to get and set a piece of a whole, possibly failing. In the most general possible case the get and set types are distinct and getting may fail with a different error than setting.

Inherited from
OpticModule
object Optic
Inherited from
OpticModule
object OpticCompose
Inherited from
OpticComposeModule
trait OpticCompose[GetWhole, SetWholeBefore, SetWholeBefore1, SetWholeBefore2, GetError, SetError, SetError1, GetPiece]()

OpticCompose abstracts over the different ways that optics can be composed together, allowing all optics to be composed with a single operator.

OpticCompose abstracts over the different ways that optics can be composed together, allowing all optics to be composed with a single operator.

Inherited from
OpticComposeModule
case class OpticFailure(message: String)

An OpticFailure describes how getting or setting a piece of a whole using an optic failed.

An OpticFailure describes how getting or setting a piece of a whole using an optic failed.

Inherited from
OpticFailureModule
object Optional
Inherited from
OpticTypesModule
object Prism
Inherited from
OpticTypesModule
object Traversal
Inherited from
OpticTypesModule
object ZIso
Inherited from
OpticTypesModule
object ZLens
Inherited from
OpticTypesModule
object ZOptional
Inherited from
OpticTypesModule
object ZPrism
Inherited from
OpticTypesModule
object ZTraversal
Inherited from
OpticTypesModule

Inherited types

type EOptic[-GetWhole, -SetWholeBefore, -SetPiece, +Error, +GetPiece, +SetWholeAfter] = Optic[GetWhole, SetWholeBefore, SetPiece, Error, Error, GetPiece, SetWholeAfter]
Inherited from
OpticTypesModule
type Fold[-S, +A] = Optic[S, Nothing, Nothing, OpticFailure, Any, Chunk[A], Any]
Inherited from
OpticTypesModule
type Getter[-S, +A] = Optic[S, Nothing, Nothing, OpticFailure, Any, A, Any]
Inherited from
OpticTypesModule
type Iso[S, A] = ZIso[S, S, A, A]
Inherited from
OpticTypesModule
Inherited from
OpticTypesModule
type Lens[S, A] = ZLens[S, S, A, A]
Inherited from
OpticTypesModule
Inherited from
OpticTypesModule
type OpticPartiallyApplied[-SetPiece, +GetError, +SetError, +GetPiece, +SetWhole] = Optic[Any, Any, SetPiece, GetError, SetError, GetPiece, SetWhole]
Inherited from
OpticTypesModule
type OpticResult[+E, +A]

An OpticResult represents the result from getting or setting a piece of a whole using an optic. This allows the library to abstract over pure optics, transactional optics, and effectual optics.

An OpticResult represents the result from getting or setting a piece of a whole using an optic. This allows the library to abstract over pure optics, transactional optics, and effectual optics.

Inherited from
OpticResultModule
type Optional[S, A] = ZOptional[S, S, A, A]
Inherited from
OpticTypesModule
type Prism[S, A] = ZPrism[S, S, A, A]
Inherited from
OpticTypesModule
type Setter[S, -A] = ZSetter[S, S, A]
Inherited from
OpticTypesModule
type Traversal[S, A] = ZTraversal[S, S, A, A]
Inherited from
OpticTypesModule
type ZIso[-S, +T, +A, -B] = Optic[S, Any, B, Nothing, Nothing, A, T]
Inherited from
OpticTypesModule
type ZIsoPartiallyApplied[+S, +A, -B] = ZIso[Any, S, A, B]
Inherited from
OpticTypesModule
type ZLens[-S, +T, +A, -B] = Optic[S, S, B, Nothing, Nothing, A, T]
Inherited from
OpticTypesModule
type ZLensPartiallyApplied[+S, +A, -B] = ZLens[Any, S, A, B]
Inherited from
OpticTypesModule
type ZOptional[-S, +T, +A, -B] = Optic[S, S, B, OpticFailure, OpticFailure, A, T]
Inherited from
OpticTypesModule
type ZOptionalPartiallyApplied[+S, +A, -B] = ZOptional[Any, S, A, B]
Inherited from
OpticTypesModule
type ZPrism[-S, +T, +A, -B] = Optic[S, Any, B, OpticFailure, Nothing, A, T]
Inherited from
OpticTypesModule
type ZPrismPartiallyApplied[+S, +A, -B] = ZPrism[Any, S, A, B]
Inherited from
OpticTypesModule
type ZSetter[-S, +T, -A] = Optic[Nothing, S, A, Any, OpticFailure, Any, T]
Inherited from
OpticTypesModule
type ZTraversal[-S, +T, +A, -B] = Optic[S, S, Chunk[B], OpticFailure, OpticFailure, Chunk[A], T]
Inherited from
OpticTypesModule
type ZTraversalPartiallyApplied[+S, +A, -B] = ZTraversal[Any, S, A, B]
Inherited from
OpticTypesModule

Value members

Inherited methods

final protected def collectAllSuccesses[E, A](iterable: Iterable[OpticResult[E, A]]): OpticResult[Nothing, Chunk[A]]

Constructs an optic result that succeeds with all the success values in the specified collection of optic results, discarding the failures.

Constructs an optic result that succeeds with all the success values in the specified collection of optic results, discarding the failures.

Inherited from
OpticResultModule
protected def fail[E](e: E): OpticResult[E, Nothing]

Constructs an optic result that fails with the specified value.

Constructs an optic result that fails with the specified value.

Inherited from
OpticResultModule
protected def flatMap[E, A, B](opticResult: OpticResult[E, A])(f: A => OpticResult[E, B]): OpticResult[E, B]

Constructs an optic result by applying a function that returns an optic result to the success value of the specified optic result.

Constructs an optic result by applying a function that returns an optic result to the success value of the specified optic result.

Inherited from
OpticResultModule
protected def foldM[E, E2, A, B](opticResult: OpticResult[E, A])(f: E => OpticResult[E2, B], g: A => OpticResult[E2, B]): OpticResult[E2, B]

Constructs an optic results that folds over the success and failure values of the specified optic result, transforming them with the functions f and g that return an optic result.

Constructs an optic results that folds over the success and failure values of the specified optic result, transforming them with the functions f and g that return an optic result.

Inherited from
OpticResultModule
final protected def foreach[E, A, B](iterable: Iterable[A])(f: A => OpticResult[E, B]): OpticResult[E, Chunk[B]]

Constructs an optic result that applies a function returning an optic result to each element in the specified collection and collects the results into a single optic result.

Constructs an optic result that applies a function returning an optic result to each element in the specified collection and collects the results into a single optic result.

Inherited from
OpticResultModule
protected def map[E, A, B](opticResult: OpticResult[E, A])(f: A => B): OpticResult[E, B]

Constructs an optic result by applying a function to the success value of this optic result.

Constructs an optic result by applying a function to the success value of this optic result.

Inherited from
OpticResultModule
final protected def mapError[E, E2, A](opticResult: OpticResult[E, A])(f: E => E2): OpticResult[E2, A]

Constructs an optic result by applying a function to the failure value of this optic result.

Constructs an optic result by applying a function to the failure value of this optic result.

Inherited from
OpticResultModule
final protected def orElse[E, E2, A](left: => OpticResult[E, A], right: => OpticResult[E2, A]): OpticResult[E2, A]

Constructs an optic result that is equal to the left optic result if it is successful or else the right optic result.

Constructs an optic result that is equal to the left optic result if it is successful or else the right optic result.

Inherited from
OpticResultModule
protected def succeed[A](a: A): OpticResult[Nothing, A]

Constructs an optic result that succeeds with the specified value.

Constructs an optic result that succeeds with the specified value.

Inherited from
OpticResultModule
final protected def zip[E, A, B](left: => OpticResult[E, A], right: => OpticResult[E, B]): OpticResult[E, (A, B)]

Constructs an optic result that combines the left and right optic results.

Constructs an optic result that combines the left and right optic results.

Inherited from
OpticResultModule
final protected def zipWith[E, A, B, C](left: => OpticResult[E, A], right: => OpticResult[E, B])(f: (A, B) => C): OpticResult[E, C]

Constructs an optic result that combines the left and right optic results, transforming their success values with the specified function.

Constructs an optic result that combines the left and right optic results, transforming their success values with the specified function.

Inherited from
OpticResultModule