getHiddenPrefixDecoder<T> function

Decoder<T> getHiddenPrefixDecoder<T>(
  1. Decoder<T> decoder,
  2. List<Decoder<void>> prefixedDecoders
)

Returns a decoder that skips hidden prefixed data before decoding the main value.

This decoder applies a list of void decoders before decoding the main value. The prefixed data is skipped during decoding without being exposed to the user.

Implementation

Decoder<T> getHiddenPrefixDecoder<T>(
  Decoder<T> decoder,
  List<Decoder<void>> prefixedDecoders,
) {
  final allDecoders = <Decoder<Object?>>[
    ...prefixedDecoders.cast<Decoder<Object?>>(),
    decoder as Decoder<Object?>,
  ];
  final tupleDecoder = getTupleDecoder(allDecoders);
  return transformDecoder<List<Object?>, T>(
    tupleDecoder,
    (tuple, bytes, offset) => tuple[tuple.length - 1] as T,
  );
}