diff options
author | Jon Pretty <jon.pretty@propensive.com> | 2017-12-02 16:55:09 +0000 |
---|---|---|
committer | Jon Pretty <jon.pretty@propensive.com> | 2017-12-02 16:55:09 +0000 |
commit | bd5f2dc411b1d63b9ee4dfec6476ba27d8410e2a (patch) | |
tree | 035718067cb0ba32a3fc5f31453d40e510e09348 /examples/shared/src/main/scala/typename.scala | |
parent | bf5fbc0373ffdff5bd7b269e2c0709fd92819641 (diff) | |
parent | fba0c1cb94d4d67c48db8fb283c5dc1fedbf215a (diff) | |
download | magnolia-bd5f2dc411b1d63b9ee4dfec6476ba27d8410e2a.tar.gz magnolia-bd5f2dc411b1d63b9ee4dfec6476ba27d8410e2a.tar.bz2 magnolia-bd5f2dc411b1d63b9ee4dfec6476ba27d8410e2a.zip |
Merge branch 'master' into virtual-params
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..aaa40f7 --- /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] +} + |