validateConfiguration static method

void validateConfiguration({
  1. required List<WheelSegment> segments,
  2. required double size,
  3. required Duration spinDuration,
  4. required int extraTurns,
})

Validates inputs at runtime so release builds keep the same contract as debug builds (where constructor assertions are enabled).

Implementation

static void validateConfiguration({
  required List<WheelSegment> segments,
  required double size,
  required Duration spinDuration,
  required int extraTurns,
}) {
  if (segments.length < 2) {
    throw ArgumentError.value(
      segments.length,
      'segments',
      'must contain at least 2 segments',
    );
  }
  if (!size.isFinite || size <= 0) {
    throw ArgumentError.value(
      size,
      'size',
      'must be finite and greater than 0',
    );
  }
  if (spinDuration.isNegative) {
    throw ArgumentError.value(
      spinDuration,
      'spinDuration',
      'must not be negative',
    );
  }
  if (extraTurns < 0) {
    throw ArgumentError.value(
      extraTurns,
      'extraTurns',
      'must be non-negative',
    );
  }
}