Trait/Object

org.typelevel.claimant

Render

Related Docs: object Render | package claimant

Permalink

trait Render[A] extends AnyRef

Render is a typeclass to provide human-readable representations of values.

This typeclass provides two major concrete benefits over the built-in toString method:

  1. We get better representations of some built-in types. For example, Strings are quoted, Arrays are handled like other collections, and so on.

2. Authors can override representations locally to improve error reporting in their own tests.

Claimant attempts to provide instances for most built-in Scala types, as well as a handy macro for generating instances for Scala case classes. For example, the following code produces a Render[Rectangle] value, which will use Render[Double] instances recursively:

case class Rectangle(height: Double, width: Double)

object Rectangle { implicit renderForRectangle: Render[Rectangle] = Render.caseClass[Rectangle] }

This typeclass is very similar to cats.Show (and probably others). One major design difference is that for a given type T, if a specific Render[T] is not available, this typeclass will generate an instance that just uses .toString. This behavior is intended to balance the benefits of custom representations with not requiring authors to write a bunch of new code in order ot use Claimant.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Render
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def renderInto(sb: StringBuilder, a: A): StringBuilder

    Permalink

    Write a representation of a into an existing mutable StringBuilder.

    Write a representation of a into an existing mutable StringBuilder.

    This method is used to power render, as well as used recursively when building up larger representations.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. final def render(a: A): String

    Permalink

    Generate a String representation of a.

  16. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  17. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  18. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped