requireEndOffset method

void requireEndOffset(
  1. Uint8List buffer,
  2. int offset,
  3. int length, [
  4. String? typeName,
])

Validates calculated end offset doesn't exceed buffer length.

Parameters

  • buffer - Buffer to validate against
  • offset - Starting offset
  • length - Length from offset
  • typeName - Type name for error context (optional)

Throws

  • AbiBinaryCodecException - If endOffset > buffer.length

Implementation

@pragma('vm:prefer-inline')
void requireEndOffset(
  Uint8List buffer,
  int offset,
  int length, [
  String? typeName,
]) {
  final endOffset = offset + length;
  if (endOffset > buffer.length) {
    final typeInfo = typeName != null ? '$typeName: ' : '';
    throw AbiBinaryCodecException(
      '${typeInfo}End offset $endOffset exceeds buffer length ${buffer.length} '
      '(offset: $offset, length: $length)',
    );
  }
}