All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nyaya.test.Result.scala Maven / Gradle / Ivy

package nyaya.test

import nyaya.prop.Eval

sealed abstract class Result[+A] {
  def success: Boolean
}

object Result {
  def apply[A](a: A, e: Eval): Result[A] =
    if (e.success)
      Satisfied
    else
      Falsified(a, e)

  sealed abstract class Success extends Result[Nothing] {
    final override def success = true
  }

  case object Satisfied extends Success

  case object Proved extends Success

  sealed abstract class Failure[+A] extends Result[A] {
    final override def success = false
  }

  final case class Falsified[+A](a: A, eval: Eval) extends Failure[A]

  final case class Error[+A](a: Option[A], error: Throwable) extends Failure[A]
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy