EasyDerive

scautable.scautable.EasyDerive
trait EasyDerive[TC[_]]

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object HtmlTableRender.type

Members list

Type members

Classlikes

case class CaseClassElement[A, B](label: String, typeclass: TC[B], getValue: A => B, idx: Int)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class CaseClassType[A](label: String, elements: List[CaseClassElement[A, _]], fromElements: List[Any] => A)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class SealedElement[A, B](label: String, typeclass: TC[B], idx: Int, cast: A => B)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class SealedType[A](label: String, elements: List[SealedElement[A, _]], getElement: A => SealedElement[A, _])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Value members

Abstract methods

def deriveCaseClass[A <: Product](caseClassType: CaseClassType[A]): TC[A]

Concrete methods

final def apply[A](using tc: TC[A]): TC[A]
inline def getElemLabels[A <: Tuple]: List[String]
inline def getInstances[A <: Tuple]: List[TC[Any]]

Givens

Givens

inline given derived[A <: Product](using m: Of[A]): TC[A]