#akka-stream #akka-grpc
#akka-поток #akka-grpc
Вопрос:
Я использую akka-grpc для генерации привязок клиента. Обычно они имеют вид
func[A, B](in: Source[A]) : Source[B]
,
т.е. они потребляют a Source[A]
и предлагают a Source[B]
.
Теперь я хочу превратить func
в Flow[A, B]
, чтобы использовать их с akka-stream.
Ответ №1:
Решение таково:
def SourceProcessor[In, Out](f : Source[In, NotUsed] => Source[Out, NotUsed]): Flow[In, Out, NotUsed] =
Flow[In].prefixAndTail(0).flatMapConcat { case (Nil, in) => f(in) }
Он используется prefixAndTail
для усиления подчинения Source
.