trait PLens[S, T, A, B] extends POptional[S, T, A, B] with Getter[S, A]

A PLens can be seen as a pair of functions:

  • get: S => A i.e. from an S, we can extract an A
  • set: (B, S) => T i.e. if we replace an A by a B in an S, we obtain a T

A PLens could also be defined as a weaker PIso where replace requires an additional parameter than reverseGet.

PLens stands for Polymorphic Lens as it replace and modify methods change a type A to B and S to T. Lens is a type alias for PLens restricted to monomorphic updates:

type Lens[S, A] = PLens[S, S, A, A]

A PLens is also a valid Getter, Fold, POptional, PTraversal and PSetter

Typically a PLens or Lens can be defined between a Product (e.g. case class, tuple, HList) and one of its component.

S

the source of a PLens

T

the modified source of a PLens

A

the target of a PLens

B

the modified target of a PLens

Self Type
PLens[S, T, A, B]
Source
Lens.scala
See also

monocle.law.LensLaws

Linear Supertypes
Getter[S, A], POptional[S, T, A, B], PTraversal[S, T, A, B], Fold[S, A], PSetter[S, T, A, B], Serializable, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PLens
  2. Getter
  3. POptional
  4. PTraversal
  5. Fold
  6. PSetter
  7. Serializable
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def get(s: S): A

    get the target of a PLens

    get the target of a PLens

    Definition Classes
    PLensGetter
  2. abstract def modifyF[F[_]](f: (A) => F[B])(s: S)(implicit arg0: Functor[F]): F[T]

    modify polymorphically the target of a PLens using Functor function

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def all(p: (A) => Boolean): (S) => Boolean

    check if there is no target or the target satisfies the predicate

    check if there is no target or the target satisfies the predicate

    Definition Classes
    POptionalFold
  5. def andThen[C, D](other: PLens[A, B, C, D]): PLens[S, T, C, D]

    compose a PLens with a PLens

  6. def andThen[B](other: Getter[A, B]): Getter[S, B]

    compose a Getter with a Getter

    compose a Getter with a Getter

    Definition Classes
    Getter
  7. def andThen[C, D](other: POptional[A, B, C, D]): POptional[S, T, C, D]

    compose a POptional with a POptional

    compose a POptional with a POptional

    Definition Classes
    POptional
  8. def andThen[C, D](other: PTraversal[A, B, C, D]): PTraversal[S, T, C, D]

    compose a PTraversal with another PTraversal

    compose a PTraversal with another PTraversal

    Definition Classes
    PTraversal
  9. def andThen[B](other: Fold[A, B]): Fold[S, B]

    compose a Fold with another Fold

    compose a Fold with another Fold

    Definition Classes
    Fold
  10. def andThen[C, D](other: PSetter[A, B, C, D]): PSetter[S, T, C, D]

    compose a PSetter with another PSetter

    compose a PSetter with another PSetter

    Definition Classes
    PSetter
  11. def asFold: Fold[S, A]

    view a PLens as a Fold

    view a PLens as a Fold

    Definition Classes
    PLensGetterPTraversal
  12. def asGetter: Getter[S, A]

    view a PLens as a Getter

  13. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  14. def asOptional: POptional[S, T, A, B]

    view a PLens as an POptional

  15. def asSetter: PSetter[S, T, A, B]

    view a PTraversal as a PSetter

    view a PTraversal as a PSetter

    Definition Classes
    PTraversal
  16. def asTraversal: PTraversal[S, T, A, B]

    view a POptional as a PTraversal

    view a POptional as a PTraversal

    Definition Classes
    POptional
  17. def choice[S1](other: Getter[S1, A]): Getter[Either[S, S1], A]

    join two Getter with the same target

    join two Getter with the same target

    Definition Classes
    Getter
  18. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  19. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  21. def exist(p: (A) => Boolean): (S) => Boolean

    check if the target satisfies the predicate

    check if the target satisfies the predicate

    Definition Classes
    PLensGetterPOptionalFold
  22. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  23. def find(p: (A) => Boolean): (S) => Option[A]

    find if the target satisfies the predicate

    find if the target satisfies the predicate

    Definition Classes
    PLensGetterPOptionalFold
  24. def fold(s: S)(implicit ev: Monoid[A]): A

    combine all targets using a target's Monoid

    combine all targets using a target's Monoid

    Definition Classes
    Fold
  25. def foldMap[M](f: (A) => M)(s: S)(implicit arg0: Monoid[M]): M

    map each target to a Monoid and combine the results underlying representation of Fold, all Fold methods are defined in terms of foldMap

    map each target to a Monoid and combine the results underlying representation of Fold, all Fold methods are defined in terms of foldMap

    Definition Classes
    PLensGetterPTraversalFold
  26. def getAll(s: S): List[A]

    get all the targets of a Fold

    get all the targets of a Fold

    Definition Classes
    Fold
  27. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  28. def getOption(s: S): Option[A]

    get the target of a POptional or nothing if there is no target

    get the target of a POptional or nothing if there is no target

    Definition Classes
    PLensPOptional
  29. def getOrModify(s: S): Either[T, A]

    get the target of a POptional or return the original value while allowing the type to change if it does not match

    get the target of a POptional or return the original value while allowing the type to change if it does not match

    Definition Classes
    PLensPOptional
  30. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  31. def headOption(s: S): Option[A]

    get the first target

    get the first target

    Definition Classes
    Fold
  32. def index[I, A1](i: I)(implicit evIndex: Index[A, I, A1], evMonoS: =:=[S, T], evMonoA: =:=[A, B]): Optional[S, A1]
    Definition Classes
    PLensPOptionalPTraversalPSetter
  33. def index[I, A1](i: I)(implicit evIndex: Index[A, I, A1]): Fold[S, A1]
    Definition Classes
    GetterFold
  34. def isEmpty(s: S): Boolean

    check if there is no target

    check if there is no target

    Definition Classes
    POptionalFold
  35. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  36. def lastOption(s: S): Option[A]

    get the last target

    get the last target

    Definition Classes
    Fold
  37. def length(s: S): Int

    calculate the number of targets

    calculate the number of targets

    Definition Classes
    Fold
  38. def modify(f: (A) => B): (S) => T

    modify polymorphically the target of a PTraversal with a function

    modify polymorphically the target of a PTraversal with a function

    Definition Classes
    PTraversalPSetter
  39. def modifyA[F[_]](f: (A) => F[B])(s: S)(implicit arg0: Applicative[F]): F[T]

    modify polymorphically the target of a PTraversal with an Applicative function all traversal methods are written in terms of modifyA

    modify polymorphically the target of a PTraversal with an Applicative function all traversal methods are written in terms of modifyA

    Definition Classes
    PLensPTraversal
  40. def modifyOption(f: (A) => B): (S) => Option[T]

    modify polymorphically the target of a POptional with a function.

    modify polymorphically the target of a POptional with a function. return empty if the POptional is not matching

    Definition Classes
    POptional
  41. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  42. def nonEmpty(s: S): Boolean

    check if there is a target

    check if there is a target

    Definition Classes
    POptionalFold
  43. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  44. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  45. def orElse(other: POptional[S, T, A, B]): POptional[S, T, A, B]

    fall-back to another POptional in case this one doesn't match

    fall-back to another POptional in case this one doesn't match

    Definition Classes
    POptional
  46. def parModifyF[F[_]](f: (A) => F[B])(s: S)(implicit F: Parallel[F]): F[T]

    PTraversal.modifyA for a Parallel applicative functor.

    PTraversal.modifyA for a Parallel applicative functor.

    Definition Classes
    PTraversal
  47. def replace(b: B): (S) => T

    replace polymorphically the target of a PTraversal with a value

    replace polymorphically the target of a PTraversal with a value

    Definition Classes
    PTraversalPSetter
  48. def replaceOption(b: B): (S) => Option[T]

    replace polymorphically the target of a POptional with a value.

    replace polymorphically the target of a POptional with a value. return empty if the POptional is not matching

    Definition Classes
    POptional
  49. def some[A1, B1](implicit ev1: =:=[A, Option[A1]], ev2: =:=[B, Option[B1]]): POptional[S, T, A1, B1]
    Definition Classes
    PLensPOptionalPTraversalPSetter
  50. def some[A1](implicit ev1: =:=[A, Option[A1]]): Fold[S, A1]
    Definition Classes
    GetterFold
  51. def split[S1, A1](other: Getter[S1, A1]): Getter[(S, S1), (A, A1)]

    pair two disjoint Getter

    pair two disjoint Getter

    Definition Classes
    Getter
  52. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  53. def to[C](f: (A) => C): Getter[S, C]

    Compose with a function lifted into a Getter

    Compose with a function lifted into a Getter

    Definition Classes
    PLensGetterFold
  54. def toString(): String
    Definition Classes
    AnyRef → Any
  55. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  56. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  57. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  58. def zip[A1](other: Getter[S, A1]): Getter[S, (A, A1)]
    Definition Classes
    Getter

Deprecated Value Members

  1. def first[C]: PLens[(S, C), (T, C), (A, C), (B, C)]
    Definition Classes
    PLensGetterPOptional
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0-M4) no replacement

  2. def left[C]: Getter[Either[S, C], Either[A, C]]
    Definition Classes
    GetterFold
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0-M4) no replacement

  3. def right[C]: Getter[Either[C, S], Either[C, A]]
    Definition Classes
    GetterFold
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0-M4) no replacement

  4. def second[C]: PLens[(C, S), (C, T), (C, A), (C, B)]
    Definition Classes
    PLensGetterPOptional
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0-M4) no replacement

  5. def set(b: B): (S) => T

    alias to replace

    alias to replace

    Definition Classes
    PSetter
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0-M1) use replace instead

  6. def setOption(b: B): (S) => Option[T]

    alias to replaceOption

    alias to replaceOption

    Definition Classes
    POptional
    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0-M1) use replaceOption instead

  7. def split[S1, T1, A1, B1](other: PLens[S1, T1, A1, B1]): PLens[(S, S1), (T, T1), (A, A1), (B, B1)]

    pair two disjoint PLens

    pair two disjoint PLens

    Annotations
    @deprecated
    Deprecated

    (Since version 3.0.0-M4) no replacement

Inherited from Getter[S, A]

Inherited from POptional[S, T, A, B]

Inherited from PTraversal[S, T, A, B]

Inherited from Fold[S, A]

Inherited from PSetter[S, T, A, B]

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped