aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGeorgi Krastev <joro.kr.21@gmail.com>2017-11-29 12:36:04 +0100
committerGeorgi Krastev <joro.kr.21@gmail.com>2017-11-29 18:04:24 +0100
commite9b52248855f9252520a232b28a841ea382922a1 (patch)
tree2811ad3c3231d1656ae5d69412bc579abf8fbb07 /examples
parent93ff9742cf8cd9f2c60986ff4f7af8d24e268b1f (diff)
downloadmagnolia-e9b52248855f9252520a232b28a841ea382922a1.tar.gz
magnolia-e9b52248855f9252520a232b28a841ea382922a1.tar.bz2
magnolia-e9b52248855f9252520a232b28a841ea382922a1.zip
Add support for repeated (vararg) parameters
Added a `Param.repeated` flag to `interface`.
Diffstat (limited to 'examples')
-rw-r--r--examples/shared/src/main/scala/default.scala3
-rw-r--r--examples/shared/src/main/scala/show.scala6
2 files changed, 9 insertions, 0 deletions
diff --git a/examples/shared/src/main/scala/default.scala b/examples/shared/src/main/scala/default.scala
index 4c1b634..4b781a5 100644
--- a/examples/shared/src/main/scala/default.scala
+++ b/examples/shared/src/main/scala/default.scala
@@ -30,6 +30,9 @@ object Default {
/** default value for ints; 0 */
implicit val int: Default[Int] = new Default[Int] { def default = 0 }
+ /** default value for sequences; the empty sequence */
+ implicit def seq[A]: Default[Seq[A]] = new Typeclass[Seq[A]] { def default = Seq.empty }
+
/** generates default instances of [[Default]] for case classes and sealed traits */
implicit def gen[T]: Default[T] = macro Magnolia.gen[T]
}
diff --git a/examples/shared/src/main/scala/show.scala b/examples/shared/src/main/scala/show.scala
index 50b34ee..9f634ba 100644
--- a/examples/shared/src/main/scala/show.scala
+++ b/examples/shared/src/main/scala/show.scala
@@ -60,4 +60,10 @@ object Show extends GenericShow[String] {
implicit val int: Show[String, Int] = new Show[String, Int] {
def show(s: Int): String = s.toString
}
+
+ /** show typeclass for sequences */
+ implicit def seq[A](implicit A: Show[String, A]): Show[String, Seq[A]] =
+ new Show[String, Seq[A]] {
+ def show(as: Seq[A]): String = as.iterator.map(A.show).mkString("[", ",", "]")
+ }
}