checkValid method
void
checkValid(
- int instance, {
- 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);
}