when method

void when({
  1. required void onUturnMetadata(
    1. DrivingUturnMetadata value
    ),
  2. required void onLeaveRoundaboutMetadata(
    1. DrivingLeaveRoundaboutMetadata value
    ),
  3. required void onTurnMetadata(
    1. DrivingTurnMetadata value
    ),
  4. required void onExitMetadata(
    1. DrivingExitMetadata value
    ),
})

Applies the passed function to the variant value.

Implementation

void when({
  required void Function(DrivingUturnMetadata value) onUturnMetadata,
  required void Function(DrivingLeaveRoundaboutMetadata value)
      onLeaveRoundaboutMetadata,
  required void Function(DrivingTurnMetadata value) onTurnMetadata,
  required void Function(DrivingExitMetadata value) onExitMetadata,
}) {
  if (_value is DrivingUturnMetadata) {
    return onUturnMetadata(_value as DrivingUturnMetadata);
  }
  if (_value is DrivingLeaveRoundaboutMetadata) {
    return onLeaveRoundaboutMetadata(
        _value as DrivingLeaveRoundaboutMetadata);
  }
  if (_value is DrivingTurnMetadata) {
    return onTurnMetadata(_value as DrivingTurnMetadata);
  }
  if (_value is DrivingExitMetadata) {
    return onExitMetadata(_value as DrivingExitMetadata);
  }
  assert(false);
}