checkValid method

  1. @override
void checkValid(
  1. int instance, {
  2. String? label,
})
override

Implementation

@override
void checkValid(int instance, {String? label}) {
  label ??= 'Value';
  final unsignedOrSigned = isUnsigned ? 'unsigned' : 'signed';

  final bits = this.bits;
  if (bits == 64) {
    if (isRunningInJs) {
      const mask64 = 0xFFFFFFFF * 0x100000000 + 0xFFFFFFFF;
      if (!(instance >= 0 && instance <= mask64)) {
        throw ArgumentError.value(
          instance,
          'value',
          '$label does not fit in $unsignedOrSigned $bits bit integer.',
        );
      }
    } else {
      const mask63 = 0x7FFFFFFF * 0x100000000 + 0xFFFFFFFF;
      const maxValue = mask63;
      const minValue = -mask63 - 1;
      if (!(instance >= minValue && instance <= maxValue)) {
        throw ArgumentError.value(
          instance,
          'value',
          '$label does not fit in $unsignedOrSigned $bits bit integer.',
        );
      }
    }
  }
  {
    final min = this.min;
    if (min != null && instance < min) {
      throw ArgumentError.value(
        instance,
        'instance',
        '$label is less than $min.',
      );
    }
  }
  {
    final max = this.max;
    if (max != null && instance > max) {
      throw ArgumentError.value(
        instance,
        'instance',
        '$label is greater than $max.',
      );
    }
  }
  super.checkValid(instance);
}