mirror of https://github.com/sbt/sbt.git
Add coursier.util.Monad
This commit is contained in:
parent
a83df3e1c8
commit
5e1eeef757
|
|
@ -1,9 +1,9 @@
|
|||
package coursier
|
||||
|
||||
import coursier.util.EitherT
|
||||
import coursier.util.{EitherT, Monad}
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.{Monad, Nondeterminism}
|
||||
import scalaz.Nondeterminism
|
||||
|
||||
object Fetch {
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,8 @@ package coursier.core
|
|||
import coursier.Fetch
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
import coursier.core.compatibility.encodeURIComponent
|
||||
import coursier.util.EitherT
|
||||
import coursier.util.{EitherT, Monad}
|
||||
|
||||
trait Repository extends Product with Serializable {
|
||||
def find[F[_]](
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
package coursier
|
||||
package core
|
||||
|
||||
import coursier.util.Monad
|
||||
|
||||
import scala.annotation.tailrec
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
|
||||
|
||||
sealed abstract class ResolutionProcess {
|
||||
|
|
|
|||
|
|
@ -2,10 +2,9 @@ package coursier.ivy
|
|||
|
||||
import coursier.Fetch
|
||||
import coursier.core._
|
||||
import coursier.util.{EitherT, WebPage}
|
||||
import coursier.util.{EitherT, Monad, WebPage}
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
|
||||
final case class IvyRepository(
|
||||
pattern: Pattern,
|
||||
|
|
|
|||
|
|
@ -3,10 +3,9 @@ package coursier.maven
|
|||
import coursier.Fetch
|
||||
import coursier.core._
|
||||
import coursier.core.compatibility.encodeURIComponent
|
||||
import coursier.util.{EitherT, WebPage}
|
||||
import coursier.util.{EitherT, Monad, WebPage}
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
|
||||
object MavenRepository {
|
||||
val SnapshotTimestamp = "(.*-)?[0-9]{8}\\.[0-9]{6}-[0-9]+".r
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package coursier.util
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
|
||||
final case class EitherT[F[_], L, R](run: F[Either[L, R]]) {
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package coursier.util
|
||||
|
||||
import scala.language.higherKinds
|
||||
|
||||
trait Monad[F[_]] {
|
||||
def point[A](a: A): F[A]
|
||||
def bind[A, B](elem: F[A])(f: A => F[B]): F[B]
|
||||
|
||||
def map[A, B](elem: F[A])(f: A => B): F[B] =
|
||||
bind(elem)(a => point(f(a)))
|
||||
}
|
||||
|
||||
object Monad {
|
||||
|
||||
implicit def fromScalaz[F[_]](implicit M: scalaz.Monad[F]): Monad[F] =
|
||||
new Monad[F] {
|
||||
def point[A](a: A) = M.pure(a)
|
||||
def bind[A, B](elem: F[A])(f: A => F[B]) = M.bind(elem)(f)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,10 +3,9 @@ package coursier
|
|||
import java.io.{File, FileNotFoundException, IOException}
|
||||
import java.net.{HttpURLConnection, URL, URLConnection}
|
||||
|
||||
import coursier.util.EitherT
|
||||
import coursier.util.{EitherT, Monad}
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
|
||||
object FallbackDependenciesRepository {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
package coursier
|
||||
|
||||
import coursier.util.EitherT
|
||||
import coursier.util.{EitherT, Monad}
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
|
||||
final case class InterProjectRepository(projects: Seq[Project]) extends Repository {
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,9 @@ package coursier
|
|||
package test
|
||||
|
||||
import coursier.core._
|
||||
import coursier.util.EitherT
|
||||
import coursier.util.{EitherT, Monad}
|
||||
|
||||
import scala.language.higherKinds
|
||||
import scalaz.Monad
|
||||
|
||||
final case class TestRepository(projects: Map[(Module, String), Project]) extends Repository {
|
||||
val source = new core.Artifact.Source {
|
||||
|
|
|
|||
Loading…
Reference in New Issue