com.softwaremill.quicklens

Type members

Classlikes

case class LensHelper[T]
case class MultiLensHelper[T]
case class PathLazyModify[T, U](doModify: (T, U => U) => T)
case class PathModify[S, A](obj: S, f: A => A => S)
trait QuicklensEitherFunctor[T[_, _], L, R]
Companion:
object
Companion:
class
trait QuicklensFunctor[F[_]]
Companion:
object
Companion:
object
Companion:
object
Companion:
class
trait QuicklensWhen[A]
Companion:
object

Value members

Concrete methods

Extensions

Extensions

extension [T[_, _], L, R](e: T[L, R])
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("eachRight"))
def eachRight(implicit evidence$7: QuicklensEitherFunctor[T, L, R]): R
extension [T[_, _], R, L](e: T[L, R])
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("eachLeft"))
def eachLeft(implicit evidence$6: QuicklensEitherFunctor[T, L, R]): L
extension [T, U](f1: T => PathModify[T, U])
def andThenModify[V](f2: U => PathModify[U, V]): T => PathModify[T, V]
extension [F[_], I, A](fa: F[A])
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("at"))
def at(idx: I)(implicit evidence$3: QuicklensIndexedFunctor[F, I]): A
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("atOrElse"))
def atOrElse(idx: I, default: => A)(implicit evidence$4: QuicklensIndexedFunctor[F, I]): A
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("index"))
def index(idx: I)(implicit evidence$5: QuicklensIndexedFunctor[F, I]): A
extension [F[_], A](fa: F[A])
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("each"))
def each(implicit evidence$1: QuicklensFunctor[F]): A
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("eachWhere"))
def eachWhere(cond: A => Boolean)(implicit evidence$2: QuicklensFunctor[F]): A
extension [S, A](obj: S)
inline def modify(inline path: S => A): PathModify[S, A]

Create an object allowing modifying the given (deeply nested) field accessible in a case class hierarchy via path on the given obj.

Create an object allowing modifying the given (deeply nested) field accessible in a case class hierarchy via path on the given obj.

All modifications are side-effect free and create copies of the original objects.

You can use .each to traverse options, lists, etc.

inline def modifyAll(inline path: S => A, inline paths: S => A*): PathModify[S, A]

Create an object allowing modifying the given (deeply nested) fields accessible in a case class hierarchy via paths on the given obj.

Create an object allowing modifying the given (deeply nested) fields accessible in a case class hierarchy via paths on the given obj.

All modifications are side-effect free and create copies of the original objects.

You can use .each to traverse options, lists, etc.

extension [F[_], T](t: F[T])
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("at"))
def at(implicit evidence$8: QuicklensSingleAtFunctor[F]): T
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("atOrElse"))
def atOrElse(default: => T)(implicit evidence$9: QuicklensSingleAtFunctor[F]): T
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("index"))
def index(implicit evidence$10: QuicklensSingleAtFunctor[F]): T
extension [A](value: A)
@compileTimeOnly(com.softwaremill.quicklens.canOnlyBeUsedInsideModify("when"))
def when[B <: A]: B