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

pimpathon.java.util.Callable.scala Maven / Gradle / Ivy

The newest version!
package pimpathon.java.util

import java.util.concurrent.Callable

import pimpathon.any._


object callable {
  implicit def callablePimps[A](value: Callable[A]): CallablePimps[A] = new CallablePimps[A](value)

  implicit def callbackFromThunk[A](thunk: () ⇒ A): Callable[A] = create(thunk())

  def create[A](action: ⇒ A): Callable[A] = new Callable[A] {
    override def call(): A = action
  }

  class CallablePimps[A](value: Callable[A]) {
    def attempt: Callable[Either[Throwable, A]] = create(new AnyPimps(value).attempt(_.call()))
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy