diff options
Diffstat (limited to 'src/main/scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/database/Dal.scala | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/core/database/Dal.scala b/src/main/scala/xyz/driver/core/database/Dal.scala index 55766db..ed72d3b 100644 --- a/src/main/scala/xyz/driver/core/database/Dal.scala +++ b/src/main/scala/xyz/driver/core/database/Dal.scala @@ -31,12 +31,17 @@ class FutureDal(executionContext: ExecutionContext) extends Dal { class SlickDal(database: Database, executionContext: ExecutionContext) extends Dal { import database.profile.api._ implicit val exec = executionContext + override type T[D] = slick.dbio.DBIO[D] - implicit protected class QueryOps[+E, U](query: Query[E, U, Seq]) { + implicit protected class QueryOps[U](query: Query[_, U, Seq]) { def resultT: ListT[T, U] = ListT[T, U](query.result.map(_.toList)) } + implicit protected class CompiledQueryOps[U](compiledQuery: slick.lifted.RunnableCompiled[_, Seq[U]]) { + def resultT: ListT[T, U] = ListT.listT[T](compiledQuery.result.map(_.toList)) + } + override implicit val monadT: Monad[T] = new Monad[T] { override def point[A](a: => A): T[A] = DBIO.successful(a) override def bind[A, B](fa: T[A])(f: A => T[B]): T[B] = fa.flatMap(f) |