Packages

object Aspect extends Serializable

Source
Aspect.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Aspect
  2. Serializable
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. trait Advice[F[_], G[_]] extends Serializable

    An Aspect.Advice represents the effect of a particular Aspect on a single value (the target).

    An Aspect.Advice represents the effect of a particular Aspect on a single value (the target). It witnesses that for some value F[A] there exists a compatible type class / constraint instance G[A]. The target type A is existentially quantified to enable capturing all arguments lists of a method.

    F

    The carrier type of the target value (Eval for method arguments).

    G

    The type class / constraint that defines the behaviour of this Aspect.Advice.

  2. type Codomain[Alg[_[_]], F[_]] = Aspect[Alg, Trivial, F]
  3. type Domain[Alg[_[_]], F[_]] = Aspect[Alg, F, Trivial]
  4. type Function[Alg[_[_]], F[_]] = Aspect[Alg, F, F]
  5. final case class Weave[F[_], Dom[_], Cod[_], A](algebraName: String, domain: List[List[Advice[Eval, Dom]]], codomain: Aux[F, Cod, A]) extends Product with Serializable

    An Aspect.Weave represents a reified cross-cutting concern for a single method of an algebra.

    An Aspect.Weave represents a reified cross-cutting concern for a single method of an algebra. It can be applied to all method arguments, result, or both. Its behaviour is driven by type classes.

    F

    The underlying algebra carrier type which is the result of forwarding the method call.

    Dom

    Type class / constraint that should exist for all parameter types except implicits (domain).

    Cod

    Type class / constraint that should exist for the return type of the method (codomain).

    A

    Return type of the method.

    domain

    Aspect.Advice for all arguments except implicits. Target in Eval to capture by-name arguments.

    codomain

    Aspect.Advice for the result of the method. Target in F - the underlying algebra carrier.

    See also

    Weave.Domain, Weave.Codomain and Weave.Function for convenient type aliases.

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 apply[Alg[_[_]], Dom[_], Cod[_]](implicit aspect: Aspect[Alg, Dom, Cod]): Aspect[Alg, Dom, Cod]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  7. def codomain[Alg[_[_]], F[_]](implicit aspect: Codomain[Alg, F]): Codomain[Alg, F]
  8. def domain[Alg[_[_]], F[_]](implicit aspect: Domain[Alg, F]): Domain[Alg, F]
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. def function[Alg[_[_]], F[_]](implicit aspect: Function[Alg, F]): Function[Alg, F]
  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. object Advice extends Serializable
  24. object Weave extends Serializable

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped