blob: cdc4b011456a31b4f0bbe10aa372162273f57191 (
plain) (
tree)
|
|
package magnolia.examples
import language.experimental.macros
import magnolia._
trait TypeName[T] { def name: String }
object TypeName {
type Typeclass[T] = TypeName[T]
def combine[T](ctx: CaseClass[TypeName, T]): TypeName[T] =
new TypeName[T] { def name: String = ctx.typeName }
def dispatch[T](ctx: SealedTrait[TypeName, T]): TypeName[T] =
new TypeName[T] { def name: String = ctx.typeName }
implicit def gen[T]: TypeName[T] = macro Magnolia.gen[T]
}
|