map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult str(
    1. PyArgument_Str value
    ),
  2. required TResult int(
    1. PyArgument_Int value
    ),
  3. required TResult float(
    1. PyArgument_Float value
    ),
  4. required TResult bool(
    1. PyArgument_Bool value
    ),
  5. required TResult listStr(
    1. PyArgument_ListStr value
    ),
  6. required TResult listInt(
    1. PyArgument_ListInt value
    ),
})

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case final Subclass2 value:
    return ...;
}

Implementation

@optionalTypeArgs
TResult map<TResult extends Object?>({
  required TResult Function(PyArgument_Str value) str,
  required TResult Function(PyArgument_Int value) int,
  required TResult Function(PyArgument_Float value) float,
  required TResult Function(PyArgument_Bool value) bool,
  required TResult Function(PyArgument_ListStr value) listStr,
  required TResult Function(PyArgument_ListInt value) listInt,
}) {
  final _that = this;
  switch (_that) {
    case PyArgument_Str():
      return str(_that);
    case PyArgument_Int():
      return int(_that);
    case PyArgument_Float():
      return float(_that);
    case PyArgument_Bool():
      return bool(_that);
    case PyArgument_ListStr():
      return listStr(_that);
    case PyArgument_ListInt():
      return listInt(_that);
  }
}