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

pimpathon.boolean.scala Maven / Gradle / Ivy

The newest version!
package pimpathon


object boolean {
  implicit def booleanPimps(value: Boolean): BooleanPimps = new BooleanPimps(value)

  class BooleanPimps(value: Boolean) {
    def asInt: Int = if (value) 1 else 0
    def either[R](right: R): EitherCapturer[R] = new EitherCapturer[R](value, right)
    def option[A](a: ⇒ A): Option[A] = if (value) Some(a) else None
    def implies(rhs: Boolean): Boolean = !value || rhs
    def nor(rhs: Boolean): Boolean = !(value || rhs)
    def nand(rhs: Boolean): Boolean = !(value && rhs)
    def cond[A](ifTrue: ⇒ A, ifFalse: ⇒ A): A = if (value) ifTrue else ifFalse
  }

  class EitherCapturer[R](value: Boolean, right: R) {
    def or[L](left: ⇒ L): Either[L, R] = if (value) Right(right) else Left(left)
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy