map<TResult extends Object?> method

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

Implementation

TResult map<TResult extends Object?>({
  required TResult Function(CraftGiftResultFail value) fail,
  required TResult Function(CraftGiftResultInvalidGift value) invalidGift,
  required TResult Function(CraftGiftResultSuccess value) success,
  required TResult Function(CraftGiftResultTooEarly value) tooEarly,
}) {
  switch (getConstructor()) {
    case CraftGiftResultFail.constructor:
      return fail.call(this as CraftGiftResultFail);
    case CraftGiftResultInvalidGift.constructor:
      return invalidGift.call(this as CraftGiftResultInvalidGift);
    case CraftGiftResultSuccess.constructor:
      return success.call(this as CraftGiftResultSuccess);
    case CraftGiftResultTooEarly.constructor:
      return tooEarly.call(this as CraftGiftResultTooEarly);
  }
  throw StateError('not handled type Generator');
}