maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult success(
    1. InviteGroupCallParticipantResultSuccess value
    )?,
  2. TResult userAlreadyParticipant(
    1. InviteGroupCallParticipantResultUserAlreadyParticipant value
    )?,
  3. TResult userPrivacyRestricted(
    1. InviteGroupCallParticipantResultUserPrivacyRestricted value
    )?,
  4. TResult userWasBanned(
    1. InviteGroupCallParticipantResultUserWasBanned value
    )?,
  5. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(InviteGroupCallParticipantResultSuccess value)? success,
  TResult Function(
    InviteGroupCallParticipantResultUserAlreadyParticipant value,
  )?
  userAlreadyParticipant,
  TResult Function(
    InviteGroupCallParticipantResultUserPrivacyRestricted value,
  )?
  userPrivacyRestricted,
  TResult Function(InviteGroupCallParticipantResultUserWasBanned value)?
  userWasBanned,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case InviteGroupCallParticipantResultSuccess.constructor:
      if (success != null) {
        return success.call(this as InviteGroupCallParticipantResultSuccess);
      }
      break;
    case InviteGroupCallParticipantResultUserAlreadyParticipant.constructor:
      if (userAlreadyParticipant != null) {
        return userAlreadyParticipant.call(
          this as InviteGroupCallParticipantResultUserAlreadyParticipant,
        );
      }
      break;
    case InviteGroupCallParticipantResultUserPrivacyRestricted.constructor:
      if (userPrivacyRestricted != null) {
        return userPrivacyRestricted.call(
          this as InviteGroupCallParticipantResultUserPrivacyRestricted,
        );
      }
      break;
    case InviteGroupCallParticipantResultUserWasBanned.constructor:
      if (userWasBanned != null) {
        return userWasBanned.call(
          this as InviteGroupCallParticipantResultUserWasBanned,
        );
      }
      break;
  }
  return orElse.call();
}