aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2017-11-10 17:13:18 +0000
committerJon Pretty <jon.pretty@propensive.com>2017-11-10 17:13:18 +0000
commitfd6a18d01218c52558508aca3424d4eb78be911c (patch)
tree75c027b34c2084eb1e13823256bf1316e05caadc /examples
parentf5a5463fad814206c5131324e3aa8a00f6223545 (diff)
downloadmagnolia-fd6a18d01218c52558508aca3424d4eb78be911c.tar.gz
magnolia-fd6a18d01218c52558508aca3424d4eb78be911c.tar.bz2
magnolia-fd6a18d01218c52558508aca3424d4eb78be911c.zip
Include support for decomposing AnyVals, like case classes
Diffstat (limited to 'examples')
-rw-r--r--examples/src/main/scala/show.scala5
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))}"
}