Slide 7
Slide 7 text
Accumulator
final class Accumulator[-E, +A](sink: Sink[E, Future[A]]) {
def map[B](f: A => B)
(implicit executor: ExecutionContext): Accumulator[E, B]
def recoverWith[B >: A](pf: PartialFunction[Throwable, Future[B]])
(implicit executor: ExecutionContext): Accumulator[E, B]
!
def run(source: Source[E, _])
(implicit materializer: Materializer): Future[A] =
source.toMat(sink)(Keep.right).run()
}
Materialize
stream of E (multiple values)
into Future[A] (single value)
• Thin wrapper for Sink of Akka Streams
• Transform accumulated elements into Future
play-streams: play.api.libs.streams.Accumulator