diff options
author | Jon Pretty <jon.pretty@propensive.com> | 2017-11-10 17:13:18 +0000 |
---|---|---|
committer | Jon Pretty <jon.pretty@propensive.com> | 2017-11-10 17:13:18 +0000 |
commit | fd6a18d01218c52558508aca3424d4eb78be911c (patch) | |
tree | 75c027b34c2084eb1e13823256bf1316e05caadc /examples/src/main/scala | |
parent | f5a5463fad814206c5131324e3aa8a00f6223545 (diff) | |
download | magnolia-fd6a18d01218c52558508aca3424d4eb78be911c.tar.gz magnolia-fd6a18d01218c52558508aca3424d4eb78be911c.tar.bz2 magnolia-fd6a18d01218c52558508aca3424d4eb78be911c.zip |
Include support for decomposing AnyVals, like case classes
Diffstat (limited to 'examples/src/main/scala')
-rw-r--r-- | examples/src/main/scala/show.scala | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/examples/src/main/scala/show.scala b/examples/src/main/scala/show.scala index e101c11..fdebb78 100644 --- a/examples/src/main/scala/show.scala +++ b/examples/src/main/scala/show.scala @@ -21,7 +21,10 @@ trait GenericShow[Out] { /** creates a new [[Show]] instance by labelling and joining (with `mkString`) the result of * showing each parameter, and prefixing it with the class name */ def combine[T](ctx: CaseClass[Typeclass, T]): Show[Out, T] = new Show[Out, T] { - def show(value: T) = { + def show(value: T) = if(ctx.isValueClass) { + val param = ctx.parameters.head + param.typeclass.show(param.dereference(value)) + } else { val paramStrings = ctx.parameters.map { param => s"${param.label}=${param.typeclass.show(param.dereference(value))}" } |