Advertisement
Guest User

Untitled

a guest
Apr 8th, 2014
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.53 KB | None | 0 0
  1.  
  2. class Loader[A,Marker](retrieve: Option[Marker] => Future[PagedResults[A,Marker]])(implicit ec:ExecutionContext){
  3.  
  4.   def foldUntil[B]( initial:B )( folder: (B, PagedResults[A,Marker]) => Future[(B,Boolean)], marker:Option[Marker] = None)(implicit         rc:RequestContext):Future[B] = {
  5.     retrieve(marker).flatMap( results => {
  6.       folder(initial,results).flatMap({ case (acc, finished) =>
  7.         if (finished || !results.hasMore) Future successful acc
  8.         else foldUntil(acc)(folder, results.marker)
  9.       })
  10.     })
  11.   }
  12.  
  13. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement