abstract class PPrism[S, T, A, B] extends Serializable

A PPrism can be seen as a pair of functions:

  • getOrModify: S => T \/ A
  • reverseGet : B => T

A PPrism could also be defined as a weaker PIso where get can fail.

Typically a PPrism or Prism encodes the relation between a Sum or CoProduct type (e.g. sealed trait) and one of its element.

PPrism stands for Polymorphic Prism as it set and modify methods change a type A to B and S to T. Prism is a type alias for PPrism where the type of target cannot be modified:

type Prism[S, A] = PPrism[S, S, A, A]

A PPrism is also a valid Fold, POptional, PTraversal and PSetter

S

the source of a PPrism

T

the modified source of a PPrism

A

the target of a PPrism

B

the modified target of a PPrism

Self Type
PPrism[S, T, A, B]
See also

monocle.law.PrismLaws

Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PPrism
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PPrism()

Abstract Value Members

  1. abstract def getOption(s: S): Option[A]

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

  2. abstract def getOrModify(s: S): \/[T, A]

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

  3. abstract def reverseGet(b: B): T

    get the modified source of a PPrism

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. final def ^<->[C, D](other: PIso[A, B, C, D]): PPrism[S, T, C, D]

    alias to composeIso

    alias to composeIso

    Annotations
    @inline()
  5. final def ^<-?[C, D](other: PPrism[A, B, C, D]): PPrism[S, T, C, D]

    alias to composePrism

    alias to composePrism

    Annotations
    @inline()
  6. final def ^|->[C, D](other: PLens[A, B, C, D]): POptional[S, T, C, D]

    alias to composeLens

    alias to composeLens

    Annotations
    @inline()
  7. final def ^|->>[C, D](other: PTraversal[A, B, C, D]): PTraversal[S, T, C, D]

    alias to composeTraversal

    alias to composeTraversal

    Annotations
    @inline()
  8. final def ^|-?[C, D](other: POptional[A, B, C, D]): POptional[S, T, C, D]

    alias to composeOptional

    alias to composeOptional

    Annotations
    @inline()
  9. final 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

    Annotations
    @inline()
  10. def apply[C, D, E, F, G, H](c: C, d: D, e: E, f: F, g: G, h: H)(implicit ev: <~<[(C, D, E, F, G, H), B]): T
  11. def apply[C, D, E, F, G](c: C, d: D, e: E, f: F, g: G)(implicit ev: <~<[(C, D, E, F, G), B]): T
  12. def apply[C, D, E, F](c: C, d: D, e: E, f: F)(implicit ev: <~<[(C, D, E, F), B]): T
  13. def apply[C, D, E](c: C, d: D, e: E)(implicit ev: <~<[(C, D, E), B]): T
  14. def apply[C, D](c: C, d: D)(implicit ev: <~<[(C, D), B]): T
  15. def apply(b: B): T
  16. def apply()(implicit ev: ===[B, Unit]): T

    **********************************************************************

  17. final def asFold: Fold[S, A]

    view a PPrism as a Fold

    view a PPrism as a Fold

    Annotations
    @inline()
  18. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  19. final def asOptional: POptional[S, T, A, B]

    view a PPrism as a POptional

    view a PPrism as a POptional

    Annotations
    @inline()
  20. final def asSetter: PSetter[S, T, A, B]

    view a PPrism as a Setter

    view a PPrism as a Setter

    Annotations
    @inline()
  21. final def asTraversal: PTraversal[S, T, A, B]

    view a PPrism as a PTraversal

    view a PPrism as a PTraversal

    Annotations
    @inline()
  22. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def composeFold[C](other: Fold[A, C]): Fold[S, C]

    compose a PPrism with a Fold

    compose a PPrism with a Fold

    Annotations
    @inline()
  24. final def composeGetter[C](other: Getter[A, C]): Fold[S, C]

    compose a PPrism with a Getter

    compose a PPrism with a Getter

    Annotations
    @inline()
  25. final def composeIso[C, D](other: PIso[A, B, C, D]): PPrism[S, T, C, D]

    compose a PPrism with a PIso

    compose a PPrism with a PIso

    Annotations
    @inline()
  26. final def composeLens[C, D](other: PLens[A, B, C, D]): POptional[S, T, C, D]

    compose a PPrism with a PLens

    compose a PPrism with a PLens

    Annotations
    @inline()
  27. final def composeOptional[C, D](other: POptional[A, B, C, D]): POptional[S, T, C, D]

    compose a PPrism with a POptional

    compose a PPrism with a POptional

    Annotations
    @inline()
  28. final def composePrism[C, D](other: PPrism[A, B, C, D]): PPrism[S, T, C, D]

    compose a PPrism with a PPrism

    compose a PPrism with a PPrism

    Annotations
    @inline()
  29. final def composeSetter[C, D](other: PSetter[A, B, C, D]): PSetter[S, T, C, D]

    compose a PPrism with a PSetter

    compose a PPrism with a PSetter

    Annotations
    @inline()
  30. final def composeTraversal[C, D](other: PTraversal[A, B, C, D]): PTraversal[S, T, C, D]

    compose a PPrism with a PTraversal

    compose a PPrism with a PTraversal

    Annotations
    @inline()
  31. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  33. final def exist(p: (A) ⇒ Boolean): (S) ⇒ Boolean

    check if there is a target and it satisfies the predicate

    check if there is a target and it satisfies the predicate

    Annotations
    @inline()
  34. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  35. final def find(p: (A) ⇒ Boolean): (S) ⇒ Option[A]

    find if the target satisfies the predicate

    find if the target satisfies the predicate

    Annotations
    @inline()
  36. final def first[C]: PPrism[(S, C), (T, C), (A, C), (B, C)]
    Annotations
    @inline()
  37. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  38. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  39. final def isEmpty(s: S): Boolean

    check if there is no target

    check if there is no target

    Annotations
    @inline()
  40. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  41. final def left[C]: PPrism[\/[S, C], \/[T, C], \/[A, C], \/[B, C]]
    Annotations
    @inline()
  42. final def modify(f: (A) ⇒ B): (S) ⇒ T

    modify polymorphically the target of a PPrism with a function

    modify polymorphically the target of a PPrism with a function

    Annotations
    @inline()
  43. final def modifyF[F[_]](f: (A) ⇒ F[B])(s: S)(implicit arg0: Applicative[F]): F[T]

    modify polymorphically the target of a PPrism with an Applicative function

    modify polymorphically the target of a PPrism with an Applicative function

    Annotations
    @inline()
  44. final def modifyOption(f: (A) ⇒ B): (S) ⇒ Option[T]

    modify polymorphically the target of a PPrism with a function.

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

    Annotations
    @inline()
  45. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  46. final def nonEmpty(s: S): Boolean

    check if there is a target

    check if there is a target

    Annotations
    @inline()
  47. final def notify(): Unit
    Definition Classes
    AnyRef
  48. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  49. final def re: Getter[B, T]

    create a Getter from the modified target to the modified source of a PPrism

    create a Getter from the modified target to the modified source of a PPrism

    Annotations
    @inline()
  50. final def right[C]: PPrism[\/[C, S], \/[C, T], \/[C, A], \/[C, B]]
    Annotations
    @inline()
  51. final def second[C]: PPrism[(C, S), (C, T), (C, A), (C, B)]
    Annotations
    @inline()
  52. final def set(b: B): (S) ⇒ T

    set polymorphically the target of a PPrism with a value

    set polymorphically the target of a PPrism with a value

    Annotations
    @inline()
  53. final def setOption(b: B): (S) ⇒ Option[T]

    set polymorphically the target of a PPrism with a value.

    set polymorphically the target of a PPrism with a value. return empty if the PPrism is not matching

    Annotations
    @inline()
  54. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  55. def toString(): String
    Definition Classes
    AnyRef → Any
  56. def unapply(obj: S): Option[A]
  57. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  58. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  59. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped