Search code examples
scalaplayframeworkenumerator

How to sequence Play Enumerators without interleaving?


Say, I have sequence of Enumerators, and the aim is to run them one by one, similar to long chain ofEnumerators with andThen between them, i.e. without interleaving.

So, how to combine Seq[Enumerator[T]] into Enumerator[T]?


Solution

  • Interesting, it seems that there is no built-in function for that. Something like that would work:

    val enumerators: Seq[Enumerator[T]] = ...
    enumerators.foldRight(Enumerator.eof[T])((st, i) => i andThen st)
    

    Edit: update response after Andrew confirmed that it works.