summaryrefslogtreecommitdiff
path: root/core/src/main/scala/mill/eval/Result.scala
blob: a9b2c70bd53d2a9fccd62705d9d03516c7471f85 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package mill.eval

sealed trait Result[+T]
object Result{
  implicit def create[T](t: => T): Result[T] = {
    try Success(t)
    catch { case e: Throwable => Exception(e, new java.lang.Exception().getStackTrace) }
  }
  case class Success[T](value: T) extends Result[T]
  case object Skipped extends Result[Nothing]
  sealed trait Failing extends Result[Nothing]
  case class Failure(msg: String) extends Failing
  case class Exception(throwable: Throwable, outerStack: Seq[StackTraceElement]) extends Failing
}