blob: aaa40f7855ebd759921f4e5101a94b97ca226a68 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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]
}
|