Учитывая эту функцию в декодере:
final def decodeCollect[F[_], A](dec: Decoder[A], limit: Option[Int])(buffer: BitVector)(implicit cbf: Factory[A, F[A]]): Attempt[DecodeResult[F[A]]] = {
Что мне действительно нужно, так это de c: Vector [Decoder [A]] , например:
final def decodeCollect[F[_], A](dec: Vector[Decoder[A]], limit: Option[Int])(buffer: BitVector)(implicit cbf: Factory[A, F[A]]): Attempt[DecodeResult[F[A]]] = {
для обработки двоичного формата, в котором есть поля, которые не описывают себя. В начале файла находятся записи описаний, и из них приходят размеры полей, которые необходимо применять позже в записях данных. Поэтому я хочу составить список декодеров и применить его N раз, где N - это количество декодеров.
Я мог бы написать новую функцию, смоделированную на decodeCollect, но она требует неявной фабрики, так что я, вероятно, придется скомпилировать библиотеку scode c и добавить ее.
Существует ли более простой подход с использованием того, что существует в библиотеке scode c? Есть ли способ борьбы с фабрикой или другой подход?