aboutsummaryrefslogtreecommitdiff
path: root/examples/shared/src/main/scala/typename.scala
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2017-11-30 19:32:09 +0100
committerGitHub <noreply@github.com>2017-11-30 19:32:09 +0100
commitd88b15e99e2727558bb901fcc08398862f633c11 (patch)
tree108d5b0fbdb814c8b85d7e9814f811adb94d7aeb /examples/shared/src/main/scala/typename.scala
parente2191e2687b671d4a8610544251e7e807f2793da (diff)
parent13fcfba5aa5d6a90b90c22088cb9b8da5e2823fe (diff)
downloadmagnolia-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.scala19
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]
+}
+