diff options
author | Jon Pretty <jon.pretty@propensive.com> | 2017-11-30 19:32:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-30 19:32:09 +0100 |
commit | d88b15e99e2727558bb901fcc08398862f633c11 (patch) | |
tree | 108d5b0fbdb814c8b85d7e9814f811adb94d7aeb /examples/shared/src/main/scala/typename.scala | |
parent | e2191e2687b671d4a8610544251e7e807f2793da (diff) | |
parent | 13fcfba5aa5d6a90b90c22088cb9b8da5e2823fe (diff) | |
download | magnolia-d88b15e99e2727558bb901fcc08398862f633c11.tar.gz magnolia-d88b15e99e2727558bb901fcc08398862f633c11.tar.bz2 magnolia-d88b15e99e2727558bb901fcc08398862f633c11.zip |
Merge pull request #56 from propensive/sealed-trait-typename-not-lowercased
typeName is now the full name of the type, in original case
Diffstat (limited to 'examples/shared/src/main/scala/typename.scala')
-rw-r--r-- | examples/shared/src/main/scala/typename.scala | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/examples/shared/src/main/scala/typename.scala b/examples/shared/src/main/scala/typename.scala new file mode 100644 index 0000000..c1e1fd2 --- /dev/null +++ b/examples/shared/src/main/scala/typename.scala @@ -0,0 +1,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] +} + |