Packages

abstract class Visitor[F[_], A, R] extends (Iterant[F, A]) => R

Implements the Visitor Pattern for interpreting the Iterant data structure.

This can be used as an alternative to pattern matching and is used in the implementation of Iterant for performance reasons.

WARN: this being a class instead of a recursive function, it means that it often has to keep "shared state". Keeping shared state is great for performance, but breaks referential transparency, so use with care.

Source
Iterant.scala
Linear Supertypes
(Iterant[F, A]) => R, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Visitor
  2. Function1
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Visitor()

Abstract Value Members

  1. abstract def fail(e: Throwable): R

    Processes unhandled errors.

  2. abstract def visit(ref: Halt[F, A]): R

    Processes Iterant.Halt.

  3. abstract def visit(ref: Last[F, A]): R

    Processes Iterant.Last.

  4. abstract def visit[S](ref: Scope[F, S, A]): R

    Processes Iterant.Scope.

  5. abstract def visit(ref: Concat[F, A]): R

    Processes Iterant.Concat.

  6. abstract def visit(ref: Suspend[F, A]): R

    Processes Iterant.Suspend.

  7. abstract def visit(ref: NextCursor[F, A]): R

    Processes Iterant.NextCursor.

  8. abstract def visit(ref: NextBatch[F, A]): R

    Processes Iterant.NextBatch.

  9. abstract def visit(ref: Next[F, A]): R

    Processes Iterant.Next.

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 andThen[A](g: (R) => A): (Iterant[F, A]) => A
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  5. def apply(fa: Iterant[F, A]): R
    Definition Classes
    Visitor → Function1
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  8. def compose[A](g: (A) => Iterant[F, A]): (A) => R
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  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()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    Function1 → AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from (Iterant[F, A]) => R

Inherited from AnyRef

Inherited from Any

Ungrouped