Skip to content
This repository was archived by the owner on Jun 10, 2021. It is now read-only.

Commit c949aae

Browse files
committed
Add a universal zeroK instance for MonadError
1 parent 7cdc9b7 commit c949aae

File tree

7 files changed

+5
-34
lines changed

7 files changed

+5
-34
lines changed

src/main/scala/asyncstreams/Implicits.scala

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,17 @@ package asyncstreams
22

33
import asyncstreams.typeclass.ZeroK
44

5-
import scala.concurrent.{ExecutionContext, Future}
65
import scala.language.higherKinds
76
import scalaz.{Monad, MonadError, MonadPlus}
87

98
object Implicits {
109
object MonadErrorInstances {
11-
implicit def streamMonadPlus[F[+_]: λ[`x[+_]` => MonadError[x, Throwable]] : ZeroK]: MonadPlus[AsyncStream[F, ?]] = new ASMonadPlusForMonadError[F]
12-
implicit def impl[F[+_]: λ[`x[+_]` => MonadError[x, Throwable]] : ZeroK]: ASImpl[F] = new ASImplForMonadError[F]
10+
implicit def streamMonadPlus[F[+_]: λ[`x[+_]` => MonadError[x, Throwable]]]: MonadPlus[AsyncStream[F, ?]] = new ASMonadPlusForMonadError[F]
11+
implicit def impl[F[+_]: λ[`x[+_]` => MonadError[x, Throwable]]]: ASImpl[F] = new ASImplForMonadError[F]
12+
implicit def zeroK[F[+_]](implicit me: MonadError[F, Throwable]): ZeroK[F] = new ZeroK[F] {
13+
override def zero[A] = me.raiseError(new NoSuchElementException)
14+
}
1315
}
1416

1517
def asStateTOps[F[+_]: Monad](implicit methods: ASImpl[F]) = new ASStateTOps[F]
16-
17-
object ScalaFuture {
18-
implicit def scalaFutureZero(implicit ec: ExecutionContext): ZeroK[Future] = new ZeroK[Future] {
19-
override def zero[A]: Future[A] = Future.failed(new NoSuchElementException)
20-
}
21-
}
2218
}

src/test/scala/asyncstreams/monixTask/AsyncStreamTestsWithMonixTask.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import scala.concurrent.duration._
1414
import scalaz.syntax.monadPlus._
1515

1616
class AsyncStreamTestsWithMonixTask extends FunSuite with Matchers {
17-
import TaskZeroK.taskZeroK
1817
private implicit val scheduler = Scheduler.fixedPool("monix", 4)
1918
private def makeInfStream = AsyncStream.unfold[Task, Int](0)(_ + 1)
2019
private def wait[T](f: Task[T], d: FiniteDuration = 5.seconds): T = Await.result(f.runAsync, d)

src/test/scala/asyncstreams/monixTask/TaskZeroK.scala

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/test/scala/asyncstreams/stdFuture/AsyncStreamMonadSyntaxTests.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import scalaz.syntax.monadPlus._
1313

1414
class AsyncStreamMonadSyntaxTests extends FunSuite with Matchers {
1515
import Implicits.MonadErrorInstances._
16-
import Implicits.ScalaFuture._
1716
import Implicits.asStateTOps
1817
private val ftInstance = asStateTOps[Future]
1918
import ftInstance._

src/test/scala/asyncstreams/stdFuture/AsyncStreamTestsWithStandardFuture.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import java.util.concurrent.Executors
44

55
import asyncstreams.Utils._
66
import asyncstreams.{ASImpl, AsyncStream}
7-
import asyncstreams.Implicits.ScalaFuture._
87
import asyncstreams.Implicits.MonadErrorInstances._
98
import org.scalatest.{FunSuite, Matchers}
109

src/test/scala/asyncstreams/twitterFuture/AsyncStreamTestsWithTwitterFuture.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import scala.collection.mutable.ArrayBuffer
1212
import scalaz.syntax.monadPlus._
1313

1414
class AsyncStreamTestsWithTwitterFuture extends FunSuite with Matchers with FutureInstances {
15-
import TwitterFutureZeroK.zeroK
16-
1715
private def wait[T](f: Future[T]): T = Await.result(f)
1816
private def makeInfStream = AsyncStream.unfold(0)(_ + 1)
1917

src/test/scala/asyncstreams/twitterFuture/TwitterFutureZeroK.scala

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)