maybeMap<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
  1. TResult bytes(
    1. BytesModel value
    )?,
  2. TResult kb(
    1. KbModel value
    )?,
  3. TResult mb(
    1. MbModel value
    )?,
  4. TResult gb(
    1. GbModel value
    )?,
  5. TResult tb(
    1. TbModel value
    )?,
  6. required TResult orElse(),
})

A variant of map that fallback to returning orElse.

It is equivalent to doing:

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

Implementation

@optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
  TResult Function(BytesModel value)? bytes,
  TResult Function(KbModel value)? kb,
  TResult Function(MbModel value)? mb,
  TResult Function(GbModel value)? gb,
  TResult Function(TbModel value)? tb,
  required TResult orElse(),
}) {
  final _that = this;
  switch (_that) {
    case BytesModel() when bytes != null:
      return bytes(_that);
    case KbModel() when kb != null:
      return kb(_that);
    case MbModel() when mb != null:
      return mb(_that);
    case GbModel() when gb != null:
      return gb(_that);
    case TbModel() when tb != null:
      return tb(_that);
    case _:
      return orElse();
  }
}