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

pimpathon.option.scala Maven / Gradle / Ivy

The newest version!
package pimpathon


object option {
  implicit def optionPimps[A](option: Option[A]): OptionPimps[A] = new OptionPimps[A](option)

  class OptionPimps[A](option: Option[A]) {
    def tapNone[Discarded](none: ⇒ Discarded): Option[A] = tap(none, _ ⇒ {})
    def tapSome[Discarded](some: A ⇒ Discarded): Option[A] = tap({}, some)
    def tap[Discarded](none: ⇒ Discarded, some: A ⇒ Discarded): Option[A] = {option.map(some).getOrElse(none); option}
    def getOrThrow(message: String): A = getOrThrow(new NoSuchElementException(message))
    def getOrThrow(exception: ⇒ Exception): A = option.getOrElse(throw exception)
    def invert(a: A): Option[A] = option.map(_ ⇒ None: Option[A]).getOrElse(Some(a))
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy