Skip to content

Instantly share code, notes, and snippets.

@tomaszperek
Created October 10, 2015 11:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomaszperek/6132a958ccaf92dc2eae to your computer and use it in GitHub Desktop.
Save tomaszperek/6132a958ccaf92dc2eae to your computer and use it in GitHub Desktop.
Implicit def for more comlex HLists of futures
implicit def hconsIsHListOfFutures[H, In <: HList, Out <: HList]
(implicit ev: IsHListOfFutures[In, Out]): IsHListOfFutures[Future[H] :: In, H :: Out] = new IsHListOfFutures[Future[H] :: In, H :: Out] {
override def hsequence(l : Future[H] :: In)(implicit ec: ExecutionContext): Future[H :: Out] = {
val head = l.head
val tail = l.tail
head.flatMap(h => ev.hsequence(tail).map(h :: _))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment