map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult bytes(
    1. BytesModel value
    ),
  2. required TResult kb(
    1. KbModel value
    ),
  3. required TResult mb(
    1. MbModel value
    ),
  4. required TResult gb(
    1. GbModel value
    ),
  5. required TResult tb(
    1. TbModel 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(BytesModel value) bytes,
  required TResult Function(KbModel value) kb,
  required TResult Function(MbModel value) mb,
  required TResult Function(GbModel value) gb,
  required TResult Function(TbModel value) tb,
}) {
  final _that = this;
  switch (_that) {
    case BytesModel():
      return bytes(_that);
    case KbModel():
      return kb(_that);
    case MbModel():
      return mb(_that);
    case GbModel():
      return gb(_that);
    case TbModel():
      return tb(_that);
  }
}