From 65c93021d7c1785e08a2e5ceff6df7278dcca13f Mon Sep 17 00:00:00 2001 From: Eugene Zadyra Date: Wed, 17 Apr 2019 10:42:52 +0200 Subject: [PATCH] generify sequence converters --- .../src/main/scala/com/lbs/common/ModelConverters.scala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/common/src/main/scala/com/lbs/common/ModelConverters.scala b/common/src/main/scala/com/lbs/common/ModelConverters.scala index fc77692..d4d8de1 100644 --- a/common/src/main/scala/com/lbs/common/ModelConverters.scala +++ b/common/src/main/scala/com/lbs/common/ModelConverters.scala @@ -1,6 +1,8 @@ package com.lbs.common +import scala.collection.TraversableLike +import scala.collection.generic.CanBuildFrom import scala.language.{higherKinds, implicitConversions} trait ModelConverters { @@ -13,10 +15,9 @@ trait ModelConverters { def mapTo[To](implicit converter: ObjectConverter[From, To]): To = converter.convert(anyRef) } - implicit def sequenceConverters[From, To](implicit objectConverter: ObjectConverter[From, To]): ObjectConverter[Seq[From], Seq[To]] = { - collection: Seq[From] => { - collection.map(objectConverter.convert) - } + implicit def sequenceConverters[From, To, Col[+X] <: TraversableLike[X, Col[X]]] + (implicit objectConverter: ObjectConverter[From, To], bf: CanBuildFrom[Col[From], To, Col[To]]): ObjectConverter[Col[From], Col[To]] = { + col: Col[From] => col.map(objectConverter.convert) } }