in bijection-util/src/main/scala/com/twitter/bijection/twitter_util/UtilBijections.scala [74:96]
implicit def twitter2ScalaFuture[A](implicit
executor: ExecutionContext
): Bijection[TwitterFuture[A], ScalaFuture[A]] = {
new AbstractBijection[TwitterFuture[A], ScalaFuture[A]] {
override def apply(f: TwitterFuture[A]): ScalaFuture[A] = {
val p = ScalaPromise[A]()
f.respond {
case Return(value) => p success value
case Throw(exception) => p failure exception
}
p.future
}
override def invert(f: ScalaFuture[A]): TwitterFuture[A] = {
val p = new TwitterPromise[A]()
f.onComplete {
case Success(value) => p.setValue(value)
case Failure(exception) => p.setException(exception)
}
p
}
}
}