abstract class CaseClass[Typeclass[_], Type] extends AnyRef
represents a case class or case object and the context required to construct a new typeclass instance corresponding to it
Instances of CaseClass provide access to all of the parameters of the case class, the full name of the case class type, and a boolean to determine whether the type is a case class or case object.
- Typeclass
type constructor for the typeclass being derived
- Type
generic type of this parameter
- Alphabetic
- By Inheritance
- CaseClass
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
construct[Return](makeParam: (Param[Typeclass, Type]) ⇒ Return): Type
constructs a new instance of the case class type
constructs a new instance of the case class type
This method will be implemented by the Magnolia macro to make it possible to construct instances of case classes generically in user code, that is, without knowing their type concretely.
To construct a new case class instance, the method takes a lambda which defines how each parameter in the new case class should be constructed. See the Param class for more information on constructing parameter values from a Param instance.
- makeParam
lambda for converting a generic Param into the value to be used for this parameter in the construction of a new instance of the case class
- returns
a new instance of the case class
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val isObject: Boolean
- val isValueClass: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
parameters: Seq[Param[Typeclass, Type]]
a sequence of Param objects representing all of the parameters in the case class
a sequence of Param objects representing all of the parameters in the case class
For efficiency, this sequence is implemented by an
Array
, but upcast to a scala.collection.Seq to hide the mutable collection API. -
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- val typeName: String
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )