I have a stream having a huge bunch of either values in it. I am looking for an itiomatic way to filter out the Either-Left and map on the Either-Right. I want to avoid something like
final case class Foo(x: Either[String, Int], y:Int)
val foos = functionReturningSeqOfFoo()
Source(foos)
.filter(_.x.isRight)
.map(foo => (foo.x.right.get, foo.y))
.map { case (x, y) =>
doSomethingWith(x, y)
}
.runWith(Sink.seq)
This is some a minimal example. Since my stream is very long this is becomming messy and it doesn't feel like a good approach.
Btw the same applies to Option[T] in my case.