numberDecoderFactory function

FixedSizeDecoder<int> numberDecoderFactory({
  1. required String name,
  2. required int size,
  3. required int get(
    1. ByteData data,
    2. int offset,
    3. Endian endian
    ),
  4. NumberCodecConfig? config,
})

Creates a FixedSizeDecoder for a numeric type using ByteData operations.

The name is used in error messages. The size is the number of bytes the decoder consumes. The get callback reads a numeric value from a ByteData view. The optional config controls endianness (defaults to little-endian).

Implementation

FixedSizeDecoder<int> numberDecoderFactory({
  required String name,
  required int size,
  required int Function(ByteData data, int offset, Endian endian) get,
  NumberCodecConfig? config,
}) {
  final endian = config?.endian ?? Endian.little;
  return FixedSizeDecoder<int>(
    fixedSize: size,
    read: (bytes, offset) {
      final byteData = bytes.buffer.asByteData(bytes.offsetInBytes);
      return (get(byteData, offset, endian), offset + size);
    },
  );
}