package play.api.libs {
package object iteratee {
type K[E, A] = Input[E] => Iteratee[E, A]
}
}
package play.api.libs.iteratee {
private[iteratee] object internal {
import play.api.libs.iteratee.Iteratee
import scala.concurrent.{ ExecutionContext, Future }
import scala.util.control.NonFatal
def eagerFuture[A](body: => A): Future[A] = try Future.successful(body) catch { case NonFatal(e) => Future.failed(e) }
def executeFuture[A](body: => Future[A])(implicit ec: ExecutionContext): Future[A] = {
Future {
body
}(ec ).flatMap(identityFunc.asInstanceOf[Future[A] => Future[A]])(Execution.trampoline)
}
def executeIteratee[A, E](body: => Iteratee[A, E])(implicit ec: ExecutionContext): Iteratee[A, E] = Iteratee.flatten(Future(body)(ec))
def prepared[A](ec: ExecutionContext)(f: ExecutionContext => A): A = {
val pec = ec.prepare()
f(pec)
}
val identityFunc: (Any => Any) = (x: Any) => x
}
}