scala.reflect.internal.util.TriState.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala-reflect Show documentation
Show all versions of scala-reflect Show documentation
Reflection Library for the Scala Programming Language
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/
package scala
package reflect
package internal
package util
import scala.language.implicitConversions
import TriState._
/** A simple true/false/unknown value, for those days when
* true and false don't quite partition the space.
*/
final class TriState private (val value: Int) extends AnyVal {
def isKnown = this != Unknown
def booleanValue = this match {
case True => true
case False => false
case _ => throw new IllegalStateException("Not a Boolean value")
}
}
object TriState {
implicit def booleanToTriState(b: Boolean): TriState = if (b) True else False
val Unknown = new TriState(-1)
val False = new TriState(0)
val True = new TriState(1)
}