split<R> method

R split<R>(
  1. R on1(
    1. X1
    ),
  2. R on2(
    1. X2
    ),
  3. R on3(
    1. X3
    ),
  4. R on4(
    1. X4
    ),
)

Implementation

R split<R>(
  R Function(X1) on1,
  R Function(X2) on2,
  R Function(X3) on3,
  R Function(X4) on4,
) {
  var v = value;
  if (v is X1) return on1(v);
  if (v is X2) return on2(v);
  if (v is X3) return on3(v);
  if (v is X4) return on4(v);
  throw InvalidUnionTypeException(
    "Union4<$X1, $X2, $X3, $X4>",
    value,
  );
}