maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult fail(
    1. CraftGiftResultFail value
    )?,
  2. TResult invalidGift(
    1. CraftGiftResultInvalidGift value
    )?,
  3. TResult success(
    1. CraftGiftResultSuccess value
    )?,
  4. TResult tooEarly(
    1. CraftGiftResultTooEarly value
    )?,
  5. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(CraftGiftResultFail value)? fail,
  TResult Function(CraftGiftResultInvalidGift value)? invalidGift,
  TResult Function(CraftGiftResultSuccess value)? success,
  TResult Function(CraftGiftResultTooEarly value)? tooEarly,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case CraftGiftResultFail.constructor:
      if (fail != null) {
        return fail.call(this as CraftGiftResultFail);
      }
      break;
    case CraftGiftResultInvalidGift.constructor:
      if (invalidGift != null) {
        return invalidGift.call(this as CraftGiftResultInvalidGift);
      }
      break;
    case CraftGiftResultSuccess.constructor:
      if (success != null) {
        return success.call(this as CraftGiftResultSuccess);
      }
      break;
    case CraftGiftResultTooEarly.constructor:
      if (tooEarly != null) {
        return tooEarly.call(this as CraftGiftResultTooEarly);
      }
      break;
  }
  return orElse.call();
}