From 9a5cbae9d233ac2578594531a603686517ef6e92 Mon Sep 17 00:00:00 2001 From: Oleg Morozenkov Date: Wed, 5 Aug 2026 06:57:03 +0300 Subject: [PATCH] Optimize compile --- .github/workflows/docker-image.yml | 2 +- .github/workflows/lint.yml | 2 +- CMakeLists.txt | 5 +- Dockerfile_test | 2 +- api_codegen/generate.py | 76 +- api_codegen/templates/api_methods.cpp.j2 | 4 +- api_codegen/templates/type.h.j2 | 75 - .../templates/{type.cpp.j2 => types.cpp.j2} | 9 +- api_codegen/templates/types.h.j2 | 74 +- api_codegen/templates/types_fwd.h.j2 | 11 - api_codegen/tests/test_generate.py | 81 +- include/tgbot/Api.h | 5 +- include/tgbot/ApiCodec.h | 2 +- include/tgbot/EventBroadcaster.h | 14 +- include/tgbot/EventHandler.h | 3 +- include/tgbot/{types => }/InputFile.h | 0 include/tgbot/TgLongPoll.h | 2 +- include/tgbot/Types.h | 15060 ++++++++++++++++ include/tgbot/tgbot.h | 4 +- include/tgbot/types/AcceptedGiftTypes.h | 47 - include/tgbot/types/AffiliateInfo.h | 56 - include/tgbot/types/Animation.h | 76 - include/tgbot/types/Audio.h | 76 - include/tgbot/types/BackgroundFill.h | 33 - .../types/BackgroundFillFreeformGradient.h | 38 - include/tgbot/types/BackgroundFillGradient.h | 46 - include/tgbot/types/BackgroundFillSolid.h | 36 - include/tgbot/types/BackgroundType.h | 33 - include/tgbot/types/BackgroundTypeChatTheme.h | 35 - include/tgbot/types/BackgroundTypeFill.h | 43 - include/tgbot/types/BackgroundTypePattern.h | 63 - include/tgbot/types/BackgroundTypeWallpaper.h | 55 - include/tgbot/types/Birthdate.h | 39 - include/tgbot/types/BotAccessSettings.h | 36 - include/tgbot/types/BotCommand.h | 41 - include/tgbot/types/BotCommandScope.h | 40 - .../BotCommandScopeAllChatAdministrators.h | 30 - .../types/BotCommandScopeAllGroupChats.h | 30 - .../types/BotCommandScopeAllPrivateChats.h | 30 - include/tgbot/types/BotCommandScopeChat.h | 37 - .../types/BotCommandScopeChatAdministrators.h | 38 - .../tgbot/types/BotCommandScopeChatMember.h | 43 - include/tgbot/types/BotCommandScopeDefault.h | 31 - include/tgbot/types/BotDescription.h | 28 - include/tgbot/types/BotName.h | 28 - include/tgbot/types/BotShortDescription.h | 28 - include/tgbot/types/BotSubscriptionUpdated.h | 43 - include/tgbot/types/BusinessBotRights.h | 99 - include/tgbot/types/BusinessConnection.h | 60 - include/tgbot/types/BusinessIntro.h | 41 - include/tgbot/types/BusinessLocation.h | 35 - include/tgbot/types/BusinessMessagesDeleted.h | 43 - include/tgbot/types/BusinessOpeningHours.h | 36 - .../types/BusinessOpeningHoursInterval.h | 35 - include/tgbot/types/CallbackGame.h | 22 - include/tgbot/types/CallbackQuery.h | 70 - include/tgbot/types/Chat.h | 73 - include/tgbot/types/ChatAdministratorRights.h | 120 - include/tgbot/types/ChatBackground.h | 29 - include/tgbot/types/ChatBoost.h | 47 - include/tgbot/types/ChatBoostAdded.h | 28 - include/tgbot/types/ChatBoostRemoved.h | 47 - include/tgbot/types/ChatBoostSource.h | 32 - include/tgbot/types/ChatBoostSourceGiftCode.h | 39 - include/tgbot/types/ChatBoostSourceGiveaway.h | 60 - include/tgbot/types/ChatBoostSourcePremium.h | 38 - include/tgbot/types/ChatBoostUpdated.h | 35 - include/tgbot/types/ChatFullInfo.h | 339 - include/tgbot/types/ChatInviteLink.h | 86 - include/tgbot/types/ChatJoinRequest.h | 71 - include/tgbot/types/ChatLocation.h | 35 - include/tgbot/types/ChatMember.h | 37 - include/tgbot/types/ChatMemberAdministrator.h | 145 - include/tgbot/types/ChatMemberBanned.h | 45 - include/tgbot/types/ChatMemberLeft.h | 38 - include/tgbot/types/ChatMemberMember.h | 49 - include/tgbot/types/ChatMemberOwner.h | 48 - include/tgbot/types/ChatMemberRestricted.h | 136 - include/tgbot/types/ChatMemberUpdated.h | 71 - include/tgbot/types/ChatOwnerChanged.h | 29 - include/tgbot/types/ChatOwnerLeft.h | 30 - include/tgbot/types/ChatPermissions.h | 109 - include/tgbot/types/ChatPhoto.h | 47 - include/tgbot/types/ChatShared.h | 59 - include/tgbot/types/Checklist.h | 54 - include/tgbot/types/ChecklistTask.h | 61 - include/tgbot/types/ChecklistTasksAdded.h | 38 - include/tgbot/types/ChecklistTasksDone.h | 44 - include/tgbot/types/ChosenInlineResult.h | 55 - include/tgbot/types/Community.h | 37 - include/tgbot/types/CommunityChatAdded.h | 29 - include/tgbot/types/CommunityChatRemoved.h | 23 - include/tgbot/types/Contact.h | 53 - include/tgbot/types/CopyTextButton.h | 29 - include/tgbot/types/Dice.h | 35 - .../tgbot/types/DirectMessagePriceChanged.h | 37 - include/tgbot/types/DirectMessagesTopic.h | 39 - include/tgbot/types/Document.h | 62 - include/tgbot/types/EncryptedCredentials.h | 42 - .../tgbot/types/EncryptedPassportElement.h | 97 - include/tgbot/types/ExternalReplyInfo.h | 185 - include/tgbot/types/File.h | 53 - include/tgbot/types/ForceReply.h | 48 - include/tgbot/types/ForumTopic.h | 51 - include/tgbot/types/ForumTopicClosed.h | 23 - include/tgbot/types/ForumTopicCreated.h | 46 - include/tgbot/types/ForumTopicEdited.h | 35 - include/tgbot/types/ForumTopicReopened.h | 23 - include/tgbot/types/Game.h | 64 - include/tgbot/types/GameHighScore.h | 40 - include/tgbot/types/GeneralForumTopicHidden.h | 23 - .../tgbot/types/GeneralForumTopicUnhidden.h | 23 - include/tgbot/types/Gift.h | 101 - include/tgbot/types/GiftBackground.h | 38 - include/tgbot/types/GiftInfo.h | 83 - include/tgbot/types/Gifts.h | 30 - include/tgbot/types/Giveaway.h | 79 - include/tgbot/types/GiveawayCompleted.h | 48 - include/tgbot/types/GiveawayCreated.h | 30 - include/tgbot/types/GiveawayWinners.h | 93 - include/tgbot/types/InaccessibleMessage.h | 40 - include/tgbot/types/InlineKeyboardButton.h | 122 - include/tgbot/types/InlineKeyboardMarkup.h | 31 - include/tgbot/types/InlineQuery.h | 61 - include/tgbot/types/InlineQueryResult.h | 65 - .../tgbot/types/InlineQueryResultArticle.h | 80 - include/tgbot/types/InlineQueryResultAudio.h | 91 - .../types/InlineQueryResultCachedAudio.h | 75 - .../types/InlineQueryResultCachedDocument.h | 85 - .../tgbot/types/InlineQueryResultCachedGif.h | 85 - .../types/InlineQueryResultCachedMpeg4Gif.h | 87 - .../types/InlineQueryResultCachedPhoto.h | 90 - .../types/InlineQueryResultCachedSticker.h | 55 - .../types/InlineQueryResultCachedVideo.h | 90 - .../types/InlineQueryResultCachedVoice.h | 80 - .../tgbot/types/InlineQueryResultContact.h | 87 - .../tgbot/types/InlineQueryResultDocument.h | 107 - include/tgbot/types/InlineQueryResultGame.h | 47 - include/tgbot/types/InlineQueryResultGif.h | 112 - .../tgbot/types/InlineQueryResultLocation.h | 105 - .../tgbot/types/InlineQueryResultMpeg4Gif.h | 114 - include/tgbot/types/InlineQueryResultPhoto.h | 106 - include/tgbot/types/InlineQueryResultVenue.h | 107 - include/tgbot/types/InlineQueryResultVideo.h | 118 - include/tgbot/types/InlineQueryResultVoice.h | 87 - .../tgbot/types/InlineQueryResultsButton.h | 52 - include/tgbot/types/InputChecklist.h | 61 - include/tgbot/types/InputChecklistTask.h | 52 - .../tgbot/types/InputContactMessageContent.h | 44 - .../tgbot/types/InputInvoiceMessageContent.h | 150 - .../tgbot/types/InputLocationMessageContent.h | 57 - include/tgbot/types/InputMedia.h | 37 - include/tgbot/types/InputMediaAnimation.h | 96 - include/tgbot/types/InputMediaAudio.h | 86 - include/tgbot/types/InputMediaDocument.h | 76 - include/tgbot/types/InputMediaLink.h | 35 - include/tgbot/types/InputMediaLivePhoto.h | 77 - include/tgbot/types/InputMediaLocation.h | 46 - include/tgbot/types/InputMediaPhoto.h | 69 - include/tgbot/types/InputMediaSticker.h | 45 - include/tgbot/types/InputMediaVenue.h | 72 - include/tgbot/types/InputMediaVideo.h | 114 - include/tgbot/types/InputMediaVoiceNote.h | 66 - include/tgbot/types/InputMessageContent.h | 38 - include/tgbot/types/InputPaidMedia.h | 32 - include/tgbot/types/InputPaidMediaLivePhoto.h | 46 - include/tgbot/types/InputPaidMediaPhoto.h | 38 - include/tgbot/types/InputPaidMediaVideo.h | 84 - include/tgbot/types/InputPollMedia.h | 40 - include/tgbot/types/InputPollOption.h | 50 - include/tgbot/types/InputPollOptionMedia.h | 40 - include/tgbot/types/InputProfilePhoto.h | 29 - .../tgbot/types/InputProfilePhotoAnimated.h | 44 - include/tgbot/types/InputProfilePhotoStatic.h | 37 - include/tgbot/types/InputRichBlock.h | 65 - include/tgbot/types/InputRichBlockAnchor.h | 35 - include/tgbot/types/InputRichBlockAnimation.h | 43 - include/tgbot/types/InputRichBlockAudio.h | 43 - .../types/InputRichBlockBlockQuotation.h | 44 - include/tgbot/types/InputRichBlockCollage.h | 44 - include/tgbot/types/InputRichBlockDetails.h | 50 - include/tgbot/types/InputRichBlockDivider.h | 30 - include/tgbot/types/InputRichBlockFooter.h | 37 - include/tgbot/types/InputRichBlockList.h | 38 - include/tgbot/types/InputRichBlockListItem.h | 55 - include/tgbot/types/InputRichBlockMap.h | 60 - .../InputRichBlockMathematicalExpression.h | 36 - include/tgbot/types/InputRichBlockParagraph.h | 37 - include/tgbot/types/InputRichBlockPhoto.h | 43 - .../tgbot/types/InputRichBlockPreformatted.h | 43 - .../tgbot/types/InputRichBlockPullQuotation.h | 42 - .../types/InputRichBlockSectionHeading.h | 43 - include/tgbot/types/InputRichBlockSlideshow.h | 44 - include/tgbot/types/InputRichBlockTable.h | 55 - include/tgbot/types/InputRichBlockThinking.h | 41 - include/tgbot/types/InputRichBlockVideo.h | 43 - include/tgbot/types/InputRichBlockVoiceNote.h | 43 - include/tgbot/types/InputRichMessage.h | 66 - include/tgbot/types/InputRichMessageContent.h | 29 - include/tgbot/types/InputRichMessageMedia.h | 44 - include/tgbot/types/InputSticker.h | 58 - include/tgbot/types/InputStoryContent.h | 29 - include/tgbot/types/InputStoryContentPhoto.h | 38 - include/tgbot/types/InputStoryContentVideo.h | 56 - include/tgbot/types/InputTextMessageContent.h | 50 - .../tgbot/types/InputVenueMessageContent.h | 65 - include/tgbot/types/Invoice.h | 52 - include/tgbot/types/KeyboardButton.h | 99 - include/tgbot/types/KeyboardButtonPollType.h | 32 - .../tgbot/types/KeyboardButtonRequestChat.h | 93 - .../types/KeyboardButtonRequestManagedBot.h | 42 - .../tgbot/types/KeyboardButtonRequestUsers.h | 64 - include/tgbot/types/LabeledPrice.h | 37 - include/tgbot/types/Link.h | 28 - include/tgbot/types/LinkPreviewOptions.h | 53 - include/tgbot/types/LivePhoto.h | 72 - include/tgbot/types/Location.h | 57 - include/tgbot/types/LocationAddress.h | 45 - include/tgbot/types/LoginUrl.h | 55 - include/tgbot/types/ManagedBotCreated.h | 31 - include/tgbot/types/ManagedBotUpdated.h | 36 - include/tgbot/types/MaskPosition.h | 47 - .../tgbot/types/MaybeInaccessibleMessage.h | 29 - include/tgbot/types/MenuButton.h | 34 - include/tgbot/types/MenuButtonCommands.h | 30 - include/tgbot/types/MenuButtonDefault.h | 30 - include/tgbot/types/MenuButtonWebApp.h | 46 - include/tgbot/types/Message.h | 765 - .../types/MessageAutoDeleteTimerChanged.h | 28 - include/tgbot/types/MessageEntity.h | 109 - include/tgbot/types/MessageId.h | 31 - include/tgbot/types/MessageOrigin.h | 33 - include/tgbot/types/MessageOriginChannel.h | 54 - include/tgbot/types/MessageOriginChat.h | 50 - include/tgbot/types/MessageOriginHiddenUser.h | 41 - include/tgbot/types/MessageOriginUser.h | 43 - .../tgbot/types/MessageReactionCountUpdated.h | 47 - include/tgbot/types/MessageReactionUpdated.h | 63 - include/tgbot/types/OrderInfo.h | 46 - include/tgbot/types/OwnedGift.h | 29 - include/tgbot/types/OwnedGiftRegular.h | 115 - include/tgbot/types/OwnedGiftUnique.h | 80 - include/tgbot/types/OwnedGifts.h | 43 - include/tgbot/types/PaidMedia.h | 33 - include/tgbot/types/PaidMediaInfo.h | 36 - include/tgbot/types/PaidMediaLivePhoto.h | 37 - include/tgbot/types/PaidMediaPhoto.h | 38 - include/tgbot/types/PaidMediaPreview.h | 47 - include/tgbot/types/PaidMediaPurchased.h | 35 - include/tgbot/types/PaidMediaVideo.h | 37 - include/tgbot/types/PaidMessagePriceChanged.h | 29 - include/tgbot/types/PassportData.h | 37 - include/tgbot/types/PassportElementError.h | 45 - .../types/PassportElementErrorDataField.h | 53 - .../tgbot/types/PassportElementErrorFile.h | 47 - .../tgbot/types/PassportElementErrorFiles.h | 48 - .../types/PassportElementErrorFrontSide.h | 47 - .../types/PassportElementErrorReverseSide.h | 47 - .../tgbot/types/PassportElementErrorSelfie.h | 47 - .../PassportElementErrorTranslationFile.h | 48 - .../PassportElementErrorTranslationFiles.h | 49 - .../types/PassportElementErrorUnspecified.h | 46 - include/tgbot/types/PassportFile.h | 46 - include/tgbot/types/PhotoSize.h | 51 - include/tgbot/types/Poll.h | 144 - include/tgbot/types/PollAnswer.h | 54 - include/tgbot/types/PollMedia.h | 88 - include/tgbot/types/PollOption.h | 75 - include/tgbot/types/PollOptionAdded.h | 50 - include/tgbot/types/PollOptionDeleted.h | 50 - include/tgbot/types/PreCheckoutQuery.h | 66 - include/tgbot/types/PreparedInlineMessage.h | 35 - include/tgbot/types/PreparedKeyboardButton.h | 28 - include/tgbot/types/ProximityAlertTriggered.h | 41 - include/tgbot/types/ReactionCount.h | 35 - include/tgbot/types/ReactionType.h | 32 - include/tgbot/types/ReactionTypeCustomEmoji.h | 35 - include/tgbot/types/ReactionTypeEmoji.h | 38 - include/tgbot/types/ReactionTypePaid.h | 30 - include/tgbot/types/RefundedPayment.h | 54 - include/tgbot/types/ReplyKeyboardMarkup.h | 72 - include/tgbot/types/ReplyKeyboardRemove.h | 44 - include/tgbot/types/ReplyParameters.h | 93 - include/tgbot/types/ResponseParameters.h | 39 - include/tgbot/types/RevenueWithdrawalState.h | 33 - .../types/RevenueWithdrawalStateFailed.h | 30 - .../types/RevenueWithdrawalStatePending.h | 30 - .../types/RevenueWithdrawalStateSucceeded.h | 41 - include/tgbot/types/RichBlock.h | 61 - include/tgbot/types/RichBlockAnchor.h | 35 - include/tgbot/types/RichBlockAnimation.h | 49 - include/tgbot/types/RichBlockAudio.h | 43 - include/tgbot/types/RichBlockBlockQuotation.h | 44 - include/tgbot/types/RichBlockCaption.h | 34 - include/tgbot/types/RichBlockCollage.h | 44 - include/tgbot/types/RichBlockDetails.h | 50 - include/tgbot/types/RichBlockDivider.h | 30 - include/tgbot/types/RichBlockFooter.h | 37 - include/tgbot/types/RichBlockList.h | 38 - include/tgbot/types/RichBlockListItem.h | 60 - include/tgbot/types/RichBlockMap.h | 59 - .../types/RichBlockMathematicalExpression.h | 36 - include/tgbot/types/RichBlockParagraph.h | 37 - include/tgbot/types/RichBlockPhoto.h | 50 - include/tgbot/types/RichBlockPreformatted.h | 43 - include/tgbot/types/RichBlockPullQuotation.h | 42 - include/tgbot/types/RichBlockSectionHeading.h | 43 - include/tgbot/types/RichBlockSlideshow.h | 44 - include/tgbot/types/RichBlockTable.h | 55 - include/tgbot/types/RichBlockTableCell.h | 58 - include/tgbot/types/RichBlockThinking.h | 41 - include/tgbot/types/RichBlockVideo.h | 49 - include/tgbot/types/RichBlockVoiceNote.h | 43 - include/tgbot/types/RichMessage.h | 36 - include/tgbot/types/RichText.h | 67 - include/tgbot/types/RichTextAnchor.h | 35 - include/tgbot/types/RichTextAnchorLink.h | 43 - include/tgbot/types/RichTextBankCardNumber.h | 42 - include/tgbot/types/RichTextBold.h | 37 - include/tgbot/types/RichTextBotCommand.h | 42 - include/tgbot/types/RichTextCashtag.h | 42 - include/tgbot/types/RichTextCode.h | 37 - include/tgbot/types/RichTextCustomEmoji.h | 41 - include/tgbot/types/RichTextDateTime.h | 49 - include/tgbot/types/RichTextEmailAddress.h | 42 - include/tgbot/types/RichTextHashtag.h | 42 - include/tgbot/types/RichTextItalic.h | 37 - include/tgbot/types/RichTextMarked.h | 37 - .../types/RichTextMathematicalExpression.h | 35 - include/tgbot/types/RichTextMention.h | 42 - include/tgbot/types/RichTextPhoneNumber.h | 42 - include/tgbot/types/RichTextReference.h | 42 - include/tgbot/types/RichTextReferenceLink.h | 42 - include/tgbot/types/RichTextSpoiler.h | 37 - include/tgbot/types/RichTextStrikethrough.h | 37 - include/tgbot/types/RichTextSubscript.h | 37 - include/tgbot/types/RichTextSuperscript.h | 37 - include/tgbot/types/RichTextTextMention.h | 43 - include/tgbot/types/RichTextUnderline.h | 37 - include/tgbot/types/RichTextUrl.h | 42 - include/tgbot/types/SentGuestMessage.h | 28 - include/tgbot/types/SentWebAppMessage.h | 30 - include/tgbot/types/SharedUser.h | 59 - include/tgbot/types/ShippingAddress.h | 53 - include/tgbot/types/ShippingOption.h | 41 - include/tgbot/types/ShippingQuery.h | 46 - include/tgbot/types/StarAmount.h | 35 - include/tgbot/types/StarTransaction.h | 66 - include/tgbot/types/StarTransactions.h | 30 - include/tgbot/types/Sticker.h | 114 - include/tgbot/types/StickerSet.h | 57 - include/tgbot/types/Story.h | 35 - include/tgbot/types/StoryArea.h | 35 - include/tgbot/types/StoryAreaPosition.h | 52 - include/tgbot/types/StoryAreaType.h | 36 - include/tgbot/types/StoryAreaTypeLink.h | 36 - include/tgbot/types/StoryAreaTypeLocation.h | 48 - .../types/StoryAreaTypeSuggestedReaction.h | 49 - include/tgbot/types/StoryAreaTypeUniqueGift.h | 36 - include/tgbot/types/StoryAreaTypeWeather.h | 47 - include/tgbot/types/SuccessfulPayment.h | 82 - .../tgbot/types/SuggestedPostApprovalFailed.h | 38 - include/tgbot/types/SuggestedPostApproved.h | 42 - include/tgbot/types/SuggestedPostDeclined.h | 37 - include/tgbot/types/SuggestedPostInfo.h | 45 - include/tgbot/types/SuggestedPostPaid.h | 52 - include/tgbot/types/SuggestedPostParameters.h | 39 - include/tgbot/types/SuggestedPostPrice.h | 38 - include/tgbot/types/SuggestedPostRefunded.h | 38 - .../tgbot/types/SwitchInlineQueryChosenChat.h | 51 - include/tgbot/types/TextQuote.h | 53 - include/tgbot/types/TransactionPartner.h | 40 - .../TransactionPartnerAffiliateProgram.h | 45 - include/tgbot/types/TransactionPartnerChat.h | 43 - .../tgbot/types/TransactionPartnerFragment.h | 37 - include/tgbot/types/TransactionPartnerOther.h | 30 - .../types/TransactionPartnerTelegramAds.h | 30 - .../types/TransactionPartnerTelegramApi.h | 36 - include/tgbot/types/TransactionPartnerUser.h | 93 - include/tgbot/types/UniqueGift.h | 96 - include/tgbot/types/UniqueGiftBackdrop.h | 41 - .../tgbot/types/UniqueGiftBackdropColors.h | 43 - include/tgbot/types/UniqueGiftColors.h | 56 - include/tgbot/types/UniqueGiftInfo.h | 70 - include/tgbot/types/UniqueGiftModel.h | 49 - include/tgbot/types/UniqueGiftSymbol.h | 41 - include/tgbot/types/Update.h | 208 - include/tgbot/types/User.h | 124 - include/tgbot/types/UserChatBoosts.h | 30 - include/tgbot/types/UserProfileAudios.h | 36 - include/tgbot/types/UserProfilePhotos.h | 36 - include/tgbot/types/UserRating.h | 47 - include/tgbot/types/UsersShared.h | 37 - include/tgbot/types/Venue.h | 62 - include/tgbot/types/Video.h | 93 - include/tgbot/types/VideoChatEnded.h | 28 - .../types/VideoChatParticipantsInvited.h | 30 - include/tgbot/types/VideoChatScheduled.h | 29 - include/tgbot/types/VideoChatStarted.h | 23 - include/tgbot/types/VideoNote.h | 58 - include/tgbot/types/VideoQuality.h | 59 - include/tgbot/types/Voice.h | 54 - include/tgbot/types/WebAppData.h | 34 - include/tgbot/types/WebAppInfo.h | 29 - include/tgbot/types/WebhookInfo.h | 76 - include/tgbot/types/WriteAccessAllowed.h | 44 - include/tgbot/types/types.h | 392 - include/tgbot/types/types_fwd.h | 395 - poetry.lock | 14 +- pyproject.toml | 2 +- src/ApiMethods.cpp | 69 +- src/{types => }/InputFile.cpp | 3 +- src/Types.cpp | 7011 +++++++ src/types/AcceptedGiftTypes.cpp | 25 - src/types/AffiliateInfo.cpp | 27 - src/types/Animation.cpp | 34 - src/types/Audio.cpp | 34 - src/types/BackgroundFill.cpp | 19 - src/types/BackgroundFillFreeformGradient.cpp | 21 - src/types/BackgroundFillGradient.cpp | 25 - src/types/BackgroundFillSolid.cpp | 21 - src/types/BackgroundType.cpp | 20 - src/types/BackgroundTypeChatTheme.cpp | 21 - src/types/BackgroundTypeFill.cpp | 24 - src/types/BackgroundTypePattern.cpp | 31 - src/types/BackgroundTypeWallpaper.cpp | 28 - src/types/Birthdate.cpp | 21 - src/types/BotAccessSettings.cpp | 20 - src/types/BotCommand.cpp | 21 - src/types/BotCommandScope.cpp | 23 - .../BotCommandScopeAllChatAdministrators.cpp | 19 - src/types/BotCommandScopeAllGroupChats.cpp | 19 - src/types/BotCommandScopeAllPrivateChats.cpp | 19 - src/types/BotCommandScopeChat.cpp | 21 - .../BotCommandScopeChatAdministrators.cpp | 21 - src/types/BotCommandScopeChatMember.cpp | 23 - src/types/BotCommandScopeDefault.cpp | 19 - src/types/BotDescription.cpp | 17 - src/types/BotName.cpp | 17 - src/types/BotShortDescription.cpp | 17 - src/types/BotSubscriptionUpdated.cpp | 22 - src/types/BusinessBotRights.cpp | 43 - src/types/BusinessConnection.cpp | 29 - src/types/BusinessIntro.cpp | 22 - src/types/BusinessLocation.cpp | 20 - src/types/BusinessMessagesDeleted.cpp | 22 - src/types/BusinessOpeningHours.cpp | 20 - src/types/BusinessOpeningHoursInterval.cpp | 19 - src/types/CallbackGame.cpp | 15 - src/types/CallbackQuery.cpp | 31 - src/types/Chat.cpp | 72 - src/types/ChatAdministratorRights.cpp | 49 - src/types/ChatBackground.cpp | 18 - src/types/ChatBoost.cpp | 24 - src/types/ChatBoostAdded.cpp | 17 - src/types/ChatBoostRemoved.cpp | 25 - src/types/ChatBoostSource.cpp | 19 - src/types/ChatBoostSourceGiftCode.cpp | 22 - src/types/ChatBoostSourceGiveaway.cpp | 28 - src/types/ChatBoostSourcePremium.cpp | 22 - src/types/ChatBoostUpdated.cpp | 21 - src/types/ChatFullInfo.cpp | 137 - src/types/ChatInviteLink.cpp | 38 - src/types/ChatJoinRequest.cpp | 32 - src/types/ChatLocation.cpp | 20 - src/types/ChatMember.cpp | 22 - src/types/ChatMemberAdministrator.cpp | 60 - src/types/ChatMemberBanned.cpp | 24 - src/types/ChatMemberLeft.cpp | 22 - src/types/ChatMemberMember.cpp | 26 - src/types/ChatMemberOwner.cpp | 26 - src/types/ChatMemberRestricted.cpp | 60 - src/types/ChatMemberUpdated.cpp | 35 - src/types/ChatOwnerChanged.cpp | 18 - src/types/ChatOwnerLeft.cpp | 18 - src/types/ChatPermissions.cpp | 47 - src/types/ChatPhoto.cpp | 23 - src/types/ChatShared.cpp | 26 - src/types/Checklist.cpp | 27 - src/types/ChecklistTask.cpp | 30 - src/types/ChecklistTasksAdded.cpp | 21 - src/types/ChecklistTasksDone.cpp | 22 - src/types/ChosenInlineResult.cpp | 27 - src/types/Community.cpp | 19 - src/types/CommunityChatAdded.cpp | 18 - src/types/CommunityChatRemoved.cpp | 15 - src/types/Contact.cpp | 25 - src/types/CopyTextButton.cpp | 17 - src/types/Dice.cpp | 19 - src/types/DirectMessagePriceChanged.cpp | 19 - src/types/DirectMessagesTopic.cpp | 20 - src/types/Document.cpp | 28 - src/types/EncryptedCredentials.cpp | 21 - src/types/EncryptedPassportElement.cpp | 36 - src/types/ExternalReplyInfo.cpp | 91 - src/types/File.cpp | 23 - src/types/ForceReply.cpp | 21 - src/types/ForumTopic.cpp | 25 - src/types/ForumTopicClosed.cpp | 15 - src/types/ForumTopicCreated.cpp | 23 - src/types/ForumTopicEdited.cpp | 19 - src/types/ForumTopicReopened.cpp | 15 - src/types/Game.cpp | 30 - src/types/GameHighScore.cpp | 22 - src/types/GeneralForumTopicHidden.cpp | 15 - src/types/GeneralForumTopicUnhidden.cpp | 15 - src/types/Gift.cpp | 44 - src/types/GiftBackground.cpp | 21 - src/types/GiftInfo.cpp | 37 - src/types/Gifts.cpp | 18 - src/types/Giveaway.cpp | 34 - src/types/GiveawayCompleted.cpp | 24 - src/types/GiveawayCreated.cpp | 17 - src/types/GiveawayWinners.cpp | 41 - src/types/InaccessibleMessage.cpp | 22 - src/types/InlineKeyboardButton.cpp | 46 - src/types/InlineKeyboardMarkup.cpp | 18 - src/types/InlineQuery.cpp | 29 - src/types/InlineQueryResult.cpp | 36 - src/types/InlineQueryResultArticle.cpp | 39 - src/types/InlineQueryResultAudio.cpp | 42 - src/types/InlineQueryResultCachedAudio.cpp | 36 - src/types/InlineQueryResultCachedDocument.cpp | 40 - src/types/InlineQueryResultCachedGif.cpp | 40 - src/types/InlineQueryResultCachedMpeg4Gif.cpp | 40 - src/types/InlineQueryResultCachedPhoto.cpp | 42 - src/types/InlineQueryResultCachedSticker.cpp | 29 - src/types/InlineQueryResultCachedVideo.cpp | 42 - src/types/InlineQueryResultCachedVoice.cpp | 38 - src/types/InlineQueryResultContact.cpp | 41 - src/types/InlineQueryResultDocument.cpp | 48 - src/types/InlineQueryResultGame.cpp | 26 - src/types/InlineQueryResultGif.cpp | 50 - src/types/InlineQueryResultLocation.cpp | 47 - src/types/InlineQueryResultMpeg4Gif.cpp | 50 - src/types/InlineQueryResultPhoto.cpp | 48 - src/types/InlineQueryResultVenue.cpp | 49 - src/types/InlineQueryResultVideo.cpp | 52 - src/types/InlineQueryResultVoice.cpp | 40 - src/types/InlineQueryResultsButton.cpp | 22 - src/types/InputChecklist.cpp | 29 - src/types/InputChecklistTask.cpp | 24 - src/types/InputContactMessageContent.cpp | 23 - src/types/InputInvoiceMessageContent.cpp | 56 - src/types/InputLocationMessageContent.cpp | 27 - src/types/InputMedia.cpp | 22 - src/types/InputMediaAnimation.cpp | 40 - src/types/InputMediaAudio.cpp | 36 - src/types/InputMediaDocument.cpp | 32 - src/types/InputMediaLink.cpp | 21 - src/types/InputMediaLivePhoto.cpp | 34 - src/types/InputMediaLocation.cpp | 25 - src/types/InputMediaPhoto.cpp | 32 - src/types/InputMediaSticker.cpp | 23 - src/types/InputMediaVenue.cpp | 35 - src/types/InputMediaVideo.cpp | 46 - src/types/InputMediaVoiceNote.cpp | 30 - src/types/InputMessageContent.cpp | 22 - src/types/InputPaidMedia.cpp | 19 - src/types/InputPaidMediaLivePhoto.cpp | 23 - src/types/InputPaidMediaPhoto.cpp | 21 - src/types/InputPaidMediaVideo.cpp | 35 - src/types/InputPollMedia.cpp | 24 - src/types/InputPollOption.cpp | 25 - src/types/InputPollOptionMedia.cpp | 24 - src/types/InputProfilePhoto.cpp | 18 - src/types/InputProfilePhotoAnimated.cpp | 23 - src/types/InputProfilePhotoStatic.cpp | 21 - src/types/InputRichBlock.cpp | 37 - src/types/InputRichBlockAnchor.cpp | 21 - src/types/InputRichBlockAnimation.cpp | 25 - src/types/InputRichBlockAudio.cpp | 25 - src/types/InputRichBlockBlockQuotation.cpp | 25 - src/types/InputRichBlockCollage.cpp | 25 - src/types/InputRichBlockDetails.cpp | 27 - src/types/InputRichBlockDivider.cpp | 19 - src/types/InputRichBlockFooter.cpp | 22 - src/types/InputRichBlockList.cpp | 22 - src/types/InputRichBlockListItem.cpp | 26 - src/types/InputRichBlockMap.cpp | 31 - .../InputRichBlockMathematicalExpression.cpp | 21 - src/types/InputRichBlockParagraph.cpp | 22 - src/types/InputRichBlockPhoto.cpp | 25 - src/types/InputRichBlockPreformatted.cpp | 24 - src/types/InputRichBlockPullQuotation.cpp | 24 - src/types/InputRichBlockSectionHeading.cpp | 24 - src/types/InputRichBlockSlideshow.cpp | 25 - src/types/InputRichBlockTable.cpp | 29 - src/types/InputRichBlockThinking.cpp | 22 - src/types/InputRichBlockVideo.cpp | 25 - src/types/InputRichBlockVoiceNote.cpp | 25 - src/types/InputRichMessage.cpp | 29 - src/types/InputRichMessageContent.cpp | 18 - src/types/InputRichMessageMedia.cpp | 24 - src/types/InputSticker.cpp | 26 - src/types/InputStoryContent.cpp | 18 - src/types/InputStoryContentPhoto.cpp | 21 - src/types/InputStoryContentVideo.cpp | 27 - src/types/InputTextMessageContent.cpp | 25 - src/types/InputVenueMessageContent.cpp | 31 - src/types/Invoice.cpp | 25 - src/types/KeyboardButton.cpp | 40 - src/types/KeyboardButtonPollType.cpp | 17 - src/types/KeyboardButtonRequestChat.cpp | 38 - src/types/KeyboardButtonRequestManagedBot.cpp | 21 - src/types/KeyboardButtonRequestUsers.cpp | 29 - src/types/LabeledPrice.cpp | 19 - src/types/Link.cpp | 17 - src/types/LinkPreviewOptions.cpp | 25 - src/types/LivePhoto.cpp | 32 - src/types/Location.cpp | 27 - src/types/LocationAddress.cpp | 23 - src/types/LoginUrl.cpp | 23 - src/types/ManagedBotCreated.cpp | 18 - src/types/ManagedBotUpdated.cpp | 20 - src/types/MaskPosition.cpp | 23 - src/types/MaybeInaccessibleMessage.cpp | 18 - src/types/MenuButton.cpp | 19 - src/types/MenuButtonCommands.cpp | 19 - src/types/MenuButtonDefault.cpp | 19 - src/types/MenuButtonWebApp.cpp | 24 - src/types/Message.cpp | 327 - src/types/MessageAutoDeleteTimerChanged.cpp | 17 - src/types/MessageEntity.cpp | 187 - src/types/MessageId.cpp | 17 - src/types/MessageOrigin.cpp | 20 - src/types/MessageOriginChannel.cpp | 28 - src/types/MessageOriginChat.cpp | 26 - src/types/MessageOriginHiddenUser.cpp | 23 - src/types/MessageOriginUser.cpp | 24 - src/types/MessageReactionCountUpdated.cpp | 25 - src/types/MessageReactionUpdated.cpp | 32 - src/types/OrderInfo.cpp | 24 - src/types/OwnedGift.cpp | 18 - src/types/OwnedGiftRegular.cpp | 50 - src/types/OwnedGiftUnique.cpp | 37 - src/types/OwnedGifts.cpp | 22 - src/types/PaidMedia.cpp | 20 - src/types/PaidMediaInfo.cpp | 20 - src/types/PaidMediaLivePhoto.cpp | 22 - src/types/PaidMediaPhoto.cpp | 22 - src/types/PaidMediaPreview.cpp | 25 - src/types/PaidMediaPurchased.cpp | 20 - src/types/PaidMediaVideo.cpp | 22 - src/types/PaidMessagePriceChanged.cpp | 17 - src/types/PassportData.cpp | 21 - src/types/PassportElementError.cpp | 25 - src/types/PassportElementErrorDataField.cpp | 27 - src/types/PassportElementErrorFile.cpp | 25 - src/types/PassportElementErrorFiles.cpp | 25 - src/types/PassportElementErrorFrontSide.cpp | 25 - src/types/PassportElementErrorReverseSide.cpp | 25 - src/types/PassportElementErrorSelfie.cpp | 25 - .../PassportElementErrorTranslationFile.cpp | 25 - .../PassportElementErrorTranslationFiles.cpp | 25 - src/types/PassportElementErrorUnspecified.cpp | 25 - src/types/PassportFile.cpp | 23 - src/types/PhotoSize.cpp | 25 - src/types/Poll.cpp | 60 - src/types/PollAnswer.cpp | 27 - src/types/PollMedia.cpp | 45 - src/types/PollOption.cpp | 35 - src/types/PollOptionAdded.cpp | 25 - src/types/PollOptionDeleted.cpp | 25 - src/types/PreCheckoutQuery.cpp | 31 - src/types/PreparedInlineMessage.cpp | 19 - src/types/PreparedKeyboardButton.cpp | 17 - src/types/ProximityAlertTriggered.cpp | 22 - src/types/ReactionCount.cpp | 20 - src/types/ReactionType.cpp | 19 - src/types/ReactionTypeCustomEmoji.cpp | 21 - src/types/ReactionTypeEmoji.cpp | 21 - src/types/ReactionTypePaid.cpp | 19 - src/types/RefundedPayment.cpp | 25 - src/types/ReplyKeyboardMarkup.cpp | 28 - src/types/ReplyKeyboardRemove.cpp | 19 - src/types/ReplyParameters.cpp | 36 - src/types/ResponseParameters.cpp | 19 - src/types/RevenueWithdrawalState.cpp | 19 - src/types/RevenueWithdrawalStateFailed.cpp | 19 - src/types/RevenueWithdrawalStatePending.cpp | 19 - src/types/RevenueWithdrawalStateSucceeded.cpp | 23 - src/types/RichBlock.cpp | 37 - src/types/RichBlockAnchor.cpp | 21 - src/types/RichBlockAnimation.cpp | 27 - src/types/RichBlockAudio.cpp | 25 - src/types/RichBlockBlockQuotation.cpp | 25 - src/types/RichBlockCaption.cpp | 20 - src/types/RichBlockCollage.cpp | 25 - src/types/RichBlockDetails.cpp | 27 - src/types/RichBlockDivider.cpp | 19 - src/types/RichBlockFooter.cpp | 22 - src/types/RichBlockList.cpp | 22 - src/types/RichBlockListItem.cpp | 28 - src/types/RichBlockMap.cpp | 31 - src/types/RichBlockMathematicalExpression.cpp | 21 - src/types/RichBlockParagraph.cpp | 22 - src/types/RichBlockPhoto.cpp | 27 - src/types/RichBlockPreformatted.cpp | 24 - src/types/RichBlockPullQuotation.cpp | 24 - src/types/RichBlockSectionHeading.cpp | 24 - src/types/RichBlockSlideshow.cpp | 25 - src/types/RichBlockTable.cpp | 29 - src/types/RichBlockTableCell.cpp | 28 - src/types/RichBlockThinking.cpp | 22 - src/types/RichBlockVideo.cpp | 27 - src/types/RichBlockVoiceNote.cpp | 25 - src/types/RichMessage.cpp | 20 - src/types/RichText.cpp | 41 - src/types/RichTextAnchor.cpp | 21 - src/types/RichTextAnchorLink.cpp | 24 - src/types/RichTextBankCardNumber.cpp | 24 - src/types/RichTextBold.cpp | 22 - src/types/RichTextBotCommand.cpp | 24 - src/types/RichTextCashtag.cpp | 24 - src/types/RichTextCode.cpp | 22 - src/types/RichTextCustomEmoji.cpp | 23 - src/types/RichTextDateTime.cpp | 26 - src/types/RichTextEmailAddress.cpp | 24 - src/types/RichTextHashtag.cpp | 24 - src/types/RichTextItalic.cpp | 22 - src/types/RichTextMarked.cpp | 22 - src/types/RichTextMathematicalExpression.cpp | 21 - src/types/RichTextMention.cpp | 24 - src/types/RichTextPhoneNumber.cpp | 24 - src/types/RichTextReference.cpp | 24 - src/types/RichTextReferenceLink.cpp | 24 - src/types/RichTextSpoiler.cpp | 22 - src/types/RichTextStrikethrough.cpp | 22 - src/types/RichTextSubscript.cpp | 22 - src/types/RichTextSuperscript.cpp | 22 - src/types/RichTextTextMention.cpp | 25 - src/types/RichTextUnderline.cpp | 22 - src/types/RichTextUrl.cpp | 24 - src/types/SentGuestMessage.cpp | 17 - src/types/SentWebAppMessage.cpp | 17 - src/types/SharedUser.cpp | 26 - src/types/ShippingAddress.cpp | 27 - src/types/ShippingOption.cpp | 22 - src/types/ShippingQuery.cpp | 25 - src/types/StarAmount.cpp | 19 - src/types/StarTransaction.cpp | 28 - src/types/StarTransactions.cpp | 18 - src/types/Sticker.cpp | 82 - src/types/StickerSet.cpp | 61 - src/types/Story.cpp | 20 - src/types/StoryArea.cpp | 21 - src/types/StoryAreaPosition.cpp | 27 - src/types/StoryAreaType.cpp | 21 - src/types/StoryAreaTypeLink.cpp | 21 - src/types/StoryAreaTypeLocation.cpp | 26 - src/types/StoryAreaTypeSuggestedReaction.cpp | 26 - src/types/StoryAreaTypeUniqueGift.cpp | 21 - src/types/StoryAreaTypeWeather.cpp | 25 - src/types/SuccessfulPayment.cpp | 36 - src/types/SuggestedPostApprovalFailed.cpp | 21 - src/types/SuggestedPostApproved.cpp | 23 - src/types/SuggestedPostDeclined.cpp | 20 - src/types/SuggestedPostInfo.cpp | 22 - src/types/SuggestedPostPaid.cpp | 25 - src/types/SuggestedPostParameters.cpp | 20 - src/types/SuggestedPostPrice.cpp | 19 - src/types/SuggestedPostRefunded.cpp | 20 - src/types/SwitchInlineQueryChosenChat.cpp | 25 - src/types/TextQuote.cpp | 24 - src/types/TransactionPartner.cpp | 23 - .../TransactionPartnerAffiliateProgram.cpp | 24 - src/types/TransactionPartnerChat.cpp | 25 - src/types/TransactionPartnerFragment.cpp | 22 - src/types/TransactionPartnerOther.cpp | 19 - src/types/TransactionPartnerTelegramAds.cpp | 19 - src/types/TransactionPartnerTelegramApi.cpp | 21 - src/types/TransactionPartnerUser.cpp | 41 - src/types/UniqueGift.cpp | 44 - src/types/UniqueGiftBackdrop.cpp | 22 - src/types/UniqueGiftBackdropColors.cpp | 23 - src/types/UniqueGiftColors.cpp | 27 - src/types/UniqueGiftInfo.cpp | 30 - src/types/UniqueGiftModel.cpp | 24 - src/types/UniqueGiftSymbol.cpp | 22 - src/types/Update.cpp | 88 - src/types/User.cpp | 51 - src/types/UserChatBoosts.cpp | 18 - src/types/UserProfileAudios.cpp | 20 - src/types/UserProfilePhotos.cpp | 20 - src/types/UserRating.cpp | 23 - src/types/UsersShared.cpp | 20 - src/types/Venue.cpp | 30 - src/types/Video.cpp | 41 - src/types/VideoChatEnded.cpp | 17 - src/types/VideoChatParticipantsInvited.cpp | 18 - src/types/VideoChatScheduled.cpp | 17 - src/types/VideoChatStarted.cpp | 15 - src/types/VideoNote.cpp | 28 - src/types/VideoQuality.cpp | 27 - src/types/Voice.cpp | 25 - src/types/WebAppData.cpp | 19 - src/types/WebAppInfo.cpp | 17 - src/types/WebhookInfo.cpp | 33 - src/types/WriteAccessAllowed.cpp | 21 - tests/tgbot/Api.cpp | 2 +- tests/tgbot/EventHandler.cpp | 3 +- tests/tgbot/TypesJson.cpp | 17 +- 803 files changed, 22200 insertions(+), 32879 deletions(-) delete mode 100644 api_codegen/templates/type.h.j2 rename api_codegen/templates/{type.cpp.j2 => types.cpp.j2} (92%) delete mode 100644 api_codegen/templates/types_fwd.h.j2 rename include/tgbot/{types => }/InputFile.h (100%) create mode 100644 include/tgbot/Types.h delete mode 100644 include/tgbot/types/AcceptedGiftTypes.h delete mode 100644 include/tgbot/types/AffiliateInfo.h delete mode 100644 include/tgbot/types/Animation.h delete mode 100644 include/tgbot/types/Audio.h delete mode 100644 include/tgbot/types/BackgroundFill.h delete mode 100644 include/tgbot/types/BackgroundFillFreeformGradient.h delete mode 100644 include/tgbot/types/BackgroundFillGradient.h delete mode 100644 include/tgbot/types/BackgroundFillSolid.h delete mode 100644 include/tgbot/types/BackgroundType.h delete mode 100644 include/tgbot/types/BackgroundTypeChatTheme.h delete mode 100644 include/tgbot/types/BackgroundTypeFill.h delete mode 100644 include/tgbot/types/BackgroundTypePattern.h delete mode 100644 include/tgbot/types/BackgroundTypeWallpaper.h delete mode 100644 include/tgbot/types/Birthdate.h delete mode 100644 include/tgbot/types/BotAccessSettings.h delete mode 100644 include/tgbot/types/BotCommand.h delete mode 100644 include/tgbot/types/BotCommandScope.h delete mode 100644 include/tgbot/types/BotCommandScopeAllChatAdministrators.h delete mode 100644 include/tgbot/types/BotCommandScopeAllGroupChats.h delete mode 100644 include/tgbot/types/BotCommandScopeAllPrivateChats.h delete mode 100644 include/tgbot/types/BotCommandScopeChat.h delete mode 100644 include/tgbot/types/BotCommandScopeChatAdministrators.h delete mode 100644 include/tgbot/types/BotCommandScopeChatMember.h delete mode 100644 include/tgbot/types/BotCommandScopeDefault.h delete mode 100644 include/tgbot/types/BotDescription.h delete mode 100644 include/tgbot/types/BotName.h delete mode 100644 include/tgbot/types/BotShortDescription.h delete mode 100644 include/tgbot/types/BotSubscriptionUpdated.h delete mode 100644 include/tgbot/types/BusinessBotRights.h delete mode 100644 include/tgbot/types/BusinessConnection.h delete mode 100644 include/tgbot/types/BusinessIntro.h delete mode 100644 include/tgbot/types/BusinessLocation.h delete mode 100644 include/tgbot/types/BusinessMessagesDeleted.h delete mode 100644 include/tgbot/types/BusinessOpeningHours.h delete mode 100644 include/tgbot/types/BusinessOpeningHoursInterval.h delete mode 100644 include/tgbot/types/CallbackGame.h delete mode 100644 include/tgbot/types/CallbackQuery.h delete mode 100644 include/tgbot/types/Chat.h delete mode 100644 include/tgbot/types/ChatAdministratorRights.h delete mode 100644 include/tgbot/types/ChatBackground.h delete mode 100644 include/tgbot/types/ChatBoost.h delete mode 100644 include/tgbot/types/ChatBoostAdded.h delete mode 100644 include/tgbot/types/ChatBoostRemoved.h delete mode 100644 include/tgbot/types/ChatBoostSource.h delete mode 100644 include/tgbot/types/ChatBoostSourceGiftCode.h delete mode 100644 include/tgbot/types/ChatBoostSourceGiveaway.h delete mode 100644 include/tgbot/types/ChatBoostSourcePremium.h delete mode 100644 include/tgbot/types/ChatBoostUpdated.h delete mode 100644 include/tgbot/types/ChatFullInfo.h delete mode 100644 include/tgbot/types/ChatInviteLink.h delete mode 100644 include/tgbot/types/ChatJoinRequest.h delete mode 100644 include/tgbot/types/ChatLocation.h delete mode 100644 include/tgbot/types/ChatMember.h delete mode 100644 include/tgbot/types/ChatMemberAdministrator.h delete mode 100644 include/tgbot/types/ChatMemberBanned.h delete mode 100644 include/tgbot/types/ChatMemberLeft.h delete mode 100644 include/tgbot/types/ChatMemberMember.h delete mode 100644 include/tgbot/types/ChatMemberOwner.h delete mode 100644 include/tgbot/types/ChatMemberRestricted.h delete mode 100644 include/tgbot/types/ChatMemberUpdated.h delete mode 100644 include/tgbot/types/ChatOwnerChanged.h delete mode 100644 include/tgbot/types/ChatOwnerLeft.h delete mode 100644 include/tgbot/types/ChatPermissions.h delete mode 100644 include/tgbot/types/ChatPhoto.h delete mode 100644 include/tgbot/types/ChatShared.h delete mode 100644 include/tgbot/types/Checklist.h delete mode 100644 include/tgbot/types/ChecklistTask.h delete mode 100644 include/tgbot/types/ChecklistTasksAdded.h delete mode 100644 include/tgbot/types/ChecklistTasksDone.h delete mode 100644 include/tgbot/types/ChosenInlineResult.h delete mode 100644 include/tgbot/types/Community.h delete mode 100644 include/tgbot/types/CommunityChatAdded.h delete mode 100644 include/tgbot/types/CommunityChatRemoved.h delete mode 100644 include/tgbot/types/Contact.h delete mode 100644 include/tgbot/types/CopyTextButton.h delete mode 100644 include/tgbot/types/Dice.h delete mode 100644 include/tgbot/types/DirectMessagePriceChanged.h delete mode 100644 include/tgbot/types/DirectMessagesTopic.h delete mode 100644 include/tgbot/types/Document.h delete mode 100644 include/tgbot/types/EncryptedCredentials.h delete mode 100644 include/tgbot/types/EncryptedPassportElement.h delete mode 100644 include/tgbot/types/ExternalReplyInfo.h delete mode 100644 include/tgbot/types/File.h delete mode 100644 include/tgbot/types/ForceReply.h delete mode 100644 include/tgbot/types/ForumTopic.h delete mode 100644 include/tgbot/types/ForumTopicClosed.h delete mode 100644 include/tgbot/types/ForumTopicCreated.h delete mode 100644 include/tgbot/types/ForumTopicEdited.h delete mode 100644 include/tgbot/types/ForumTopicReopened.h delete mode 100644 include/tgbot/types/Game.h delete mode 100644 include/tgbot/types/GameHighScore.h delete mode 100644 include/tgbot/types/GeneralForumTopicHidden.h delete mode 100644 include/tgbot/types/GeneralForumTopicUnhidden.h delete mode 100644 include/tgbot/types/Gift.h delete mode 100644 include/tgbot/types/GiftBackground.h delete mode 100644 include/tgbot/types/GiftInfo.h delete mode 100644 include/tgbot/types/Gifts.h delete mode 100644 include/tgbot/types/Giveaway.h delete mode 100644 include/tgbot/types/GiveawayCompleted.h delete mode 100644 include/tgbot/types/GiveawayCreated.h delete mode 100644 include/tgbot/types/GiveawayWinners.h delete mode 100644 include/tgbot/types/InaccessibleMessage.h delete mode 100644 include/tgbot/types/InlineKeyboardButton.h delete mode 100644 include/tgbot/types/InlineKeyboardMarkup.h delete mode 100644 include/tgbot/types/InlineQuery.h delete mode 100644 include/tgbot/types/InlineQueryResult.h delete mode 100644 include/tgbot/types/InlineQueryResultArticle.h delete mode 100644 include/tgbot/types/InlineQueryResultAudio.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedAudio.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedDocument.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedGif.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedMpeg4Gif.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedPhoto.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedSticker.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedVideo.h delete mode 100644 include/tgbot/types/InlineQueryResultCachedVoice.h delete mode 100644 include/tgbot/types/InlineQueryResultContact.h delete mode 100644 include/tgbot/types/InlineQueryResultDocument.h delete mode 100644 include/tgbot/types/InlineQueryResultGame.h delete mode 100644 include/tgbot/types/InlineQueryResultGif.h delete mode 100644 include/tgbot/types/InlineQueryResultLocation.h delete mode 100644 include/tgbot/types/InlineQueryResultMpeg4Gif.h delete mode 100644 include/tgbot/types/InlineQueryResultPhoto.h delete mode 100644 include/tgbot/types/InlineQueryResultVenue.h delete mode 100644 include/tgbot/types/InlineQueryResultVideo.h delete mode 100644 include/tgbot/types/InlineQueryResultVoice.h delete mode 100644 include/tgbot/types/InlineQueryResultsButton.h delete mode 100644 include/tgbot/types/InputChecklist.h delete mode 100644 include/tgbot/types/InputChecklistTask.h delete mode 100644 include/tgbot/types/InputContactMessageContent.h delete mode 100644 include/tgbot/types/InputInvoiceMessageContent.h delete mode 100644 include/tgbot/types/InputLocationMessageContent.h delete mode 100644 include/tgbot/types/InputMedia.h delete mode 100644 include/tgbot/types/InputMediaAnimation.h delete mode 100644 include/tgbot/types/InputMediaAudio.h delete mode 100644 include/tgbot/types/InputMediaDocument.h delete mode 100644 include/tgbot/types/InputMediaLink.h delete mode 100644 include/tgbot/types/InputMediaLivePhoto.h delete mode 100644 include/tgbot/types/InputMediaLocation.h delete mode 100644 include/tgbot/types/InputMediaPhoto.h delete mode 100644 include/tgbot/types/InputMediaSticker.h delete mode 100644 include/tgbot/types/InputMediaVenue.h delete mode 100644 include/tgbot/types/InputMediaVideo.h delete mode 100644 include/tgbot/types/InputMediaVoiceNote.h delete mode 100644 include/tgbot/types/InputMessageContent.h delete mode 100644 include/tgbot/types/InputPaidMedia.h delete mode 100644 include/tgbot/types/InputPaidMediaLivePhoto.h delete mode 100644 include/tgbot/types/InputPaidMediaPhoto.h delete mode 100644 include/tgbot/types/InputPaidMediaVideo.h delete mode 100644 include/tgbot/types/InputPollMedia.h delete mode 100644 include/tgbot/types/InputPollOption.h delete mode 100644 include/tgbot/types/InputPollOptionMedia.h delete mode 100644 include/tgbot/types/InputProfilePhoto.h delete mode 100644 include/tgbot/types/InputProfilePhotoAnimated.h delete mode 100644 include/tgbot/types/InputProfilePhotoStatic.h delete mode 100644 include/tgbot/types/InputRichBlock.h delete mode 100644 include/tgbot/types/InputRichBlockAnchor.h delete mode 100644 include/tgbot/types/InputRichBlockAnimation.h delete mode 100644 include/tgbot/types/InputRichBlockAudio.h delete mode 100644 include/tgbot/types/InputRichBlockBlockQuotation.h delete mode 100644 include/tgbot/types/InputRichBlockCollage.h delete mode 100644 include/tgbot/types/InputRichBlockDetails.h delete mode 100644 include/tgbot/types/InputRichBlockDivider.h delete mode 100644 include/tgbot/types/InputRichBlockFooter.h delete mode 100644 include/tgbot/types/InputRichBlockList.h delete mode 100644 include/tgbot/types/InputRichBlockListItem.h delete mode 100644 include/tgbot/types/InputRichBlockMap.h delete mode 100644 include/tgbot/types/InputRichBlockMathematicalExpression.h delete mode 100644 include/tgbot/types/InputRichBlockParagraph.h delete mode 100644 include/tgbot/types/InputRichBlockPhoto.h delete mode 100644 include/tgbot/types/InputRichBlockPreformatted.h delete mode 100644 include/tgbot/types/InputRichBlockPullQuotation.h delete mode 100644 include/tgbot/types/InputRichBlockSectionHeading.h delete mode 100644 include/tgbot/types/InputRichBlockSlideshow.h delete mode 100644 include/tgbot/types/InputRichBlockTable.h delete mode 100644 include/tgbot/types/InputRichBlockThinking.h delete mode 100644 include/tgbot/types/InputRichBlockVideo.h delete mode 100644 include/tgbot/types/InputRichBlockVoiceNote.h delete mode 100644 include/tgbot/types/InputRichMessage.h delete mode 100644 include/tgbot/types/InputRichMessageContent.h delete mode 100644 include/tgbot/types/InputRichMessageMedia.h delete mode 100644 include/tgbot/types/InputSticker.h delete mode 100644 include/tgbot/types/InputStoryContent.h delete mode 100644 include/tgbot/types/InputStoryContentPhoto.h delete mode 100644 include/tgbot/types/InputStoryContentVideo.h delete mode 100644 include/tgbot/types/InputTextMessageContent.h delete mode 100644 include/tgbot/types/InputVenueMessageContent.h delete mode 100644 include/tgbot/types/Invoice.h delete mode 100644 include/tgbot/types/KeyboardButton.h delete mode 100644 include/tgbot/types/KeyboardButtonPollType.h delete mode 100644 include/tgbot/types/KeyboardButtonRequestChat.h delete mode 100644 include/tgbot/types/KeyboardButtonRequestManagedBot.h delete mode 100644 include/tgbot/types/KeyboardButtonRequestUsers.h delete mode 100644 include/tgbot/types/LabeledPrice.h delete mode 100644 include/tgbot/types/Link.h delete mode 100644 include/tgbot/types/LinkPreviewOptions.h delete mode 100644 include/tgbot/types/LivePhoto.h delete mode 100644 include/tgbot/types/Location.h delete mode 100644 include/tgbot/types/LocationAddress.h delete mode 100644 include/tgbot/types/LoginUrl.h delete mode 100644 include/tgbot/types/ManagedBotCreated.h delete mode 100644 include/tgbot/types/ManagedBotUpdated.h delete mode 100644 include/tgbot/types/MaskPosition.h delete mode 100644 include/tgbot/types/MaybeInaccessibleMessage.h delete mode 100644 include/tgbot/types/MenuButton.h delete mode 100644 include/tgbot/types/MenuButtonCommands.h delete mode 100644 include/tgbot/types/MenuButtonDefault.h delete mode 100644 include/tgbot/types/MenuButtonWebApp.h delete mode 100644 include/tgbot/types/Message.h delete mode 100644 include/tgbot/types/MessageAutoDeleteTimerChanged.h delete mode 100644 include/tgbot/types/MessageEntity.h delete mode 100644 include/tgbot/types/MessageId.h delete mode 100644 include/tgbot/types/MessageOrigin.h delete mode 100644 include/tgbot/types/MessageOriginChannel.h delete mode 100644 include/tgbot/types/MessageOriginChat.h delete mode 100644 include/tgbot/types/MessageOriginHiddenUser.h delete mode 100644 include/tgbot/types/MessageOriginUser.h delete mode 100644 include/tgbot/types/MessageReactionCountUpdated.h delete mode 100644 include/tgbot/types/MessageReactionUpdated.h delete mode 100644 include/tgbot/types/OrderInfo.h delete mode 100644 include/tgbot/types/OwnedGift.h delete mode 100644 include/tgbot/types/OwnedGiftRegular.h delete mode 100644 include/tgbot/types/OwnedGiftUnique.h delete mode 100644 include/tgbot/types/OwnedGifts.h delete mode 100644 include/tgbot/types/PaidMedia.h delete mode 100644 include/tgbot/types/PaidMediaInfo.h delete mode 100644 include/tgbot/types/PaidMediaLivePhoto.h delete mode 100644 include/tgbot/types/PaidMediaPhoto.h delete mode 100644 include/tgbot/types/PaidMediaPreview.h delete mode 100644 include/tgbot/types/PaidMediaPurchased.h delete mode 100644 include/tgbot/types/PaidMediaVideo.h delete mode 100644 include/tgbot/types/PaidMessagePriceChanged.h delete mode 100644 include/tgbot/types/PassportData.h delete mode 100644 include/tgbot/types/PassportElementError.h delete mode 100644 include/tgbot/types/PassportElementErrorDataField.h delete mode 100644 include/tgbot/types/PassportElementErrorFile.h delete mode 100644 include/tgbot/types/PassportElementErrorFiles.h delete mode 100644 include/tgbot/types/PassportElementErrorFrontSide.h delete mode 100644 include/tgbot/types/PassportElementErrorReverseSide.h delete mode 100644 include/tgbot/types/PassportElementErrorSelfie.h delete mode 100644 include/tgbot/types/PassportElementErrorTranslationFile.h delete mode 100644 include/tgbot/types/PassportElementErrorTranslationFiles.h delete mode 100644 include/tgbot/types/PassportElementErrorUnspecified.h delete mode 100644 include/tgbot/types/PassportFile.h delete mode 100644 include/tgbot/types/PhotoSize.h delete mode 100644 include/tgbot/types/Poll.h delete mode 100644 include/tgbot/types/PollAnswer.h delete mode 100644 include/tgbot/types/PollMedia.h delete mode 100644 include/tgbot/types/PollOption.h delete mode 100644 include/tgbot/types/PollOptionAdded.h delete mode 100644 include/tgbot/types/PollOptionDeleted.h delete mode 100644 include/tgbot/types/PreCheckoutQuery.h delete mode 100644 include/tgbot/types/PreparedInlineMessage.h delete mode 100644 include/tgbot/types/PreparedKeyboardButton.h delete mode 100644 include/tgbot/types/ProximityAlertTriggered.h delete mode 100644 include/tgbot/types/ReactionCount.h delete mode 100644 include/tgbot/types/ReactionType.h delete mode 100644 include/tgbot/types/ReactionTypeCustomEmoji.h delete mode 100644 include/tgbot/types/ReactionTypeEmoji.h delete mode 100644 include/tgbot/types/ReactionTypePaid.h delete mode 100644 include/tgbot/types/RefundedPayment.h delete mode 100644 include/tgbot/types/ReplyKeyboardMarkup.h delete mode 100644 include/tgbot/types/ReplyKeyboardRemove.h delete mode 100644 include/tgbot/types/ReplyParameters.h delete mode 100644 include/tgbot/types/ResponseParameters.h delete mode 100644 include/tgbot/types/RevenueWithdrawalState.h delete mode 100644 include/tgbot/types/RevenueWithdrawalStateFailed.h delete mode 100644 include/tgbot/types/RevenueWithdrawalStatePending.h delete mode 100644 include/tgbot/types/RevenueWithdrawalStateSucceeded.h delete mode 100644 include/tgbot/types/RichBlock.h delete mode 100644 include/tgbot/types/RichBlockAnchor.h delete mode 100644 include/tgbot/types/RichBlockAnimation.h delete mode 100644 include/tgbot/types/RichBlockAudio.h delete mode 100644 include/tgbot/types/RichBlockBlockQuotation.h delete mode 100644 include/tgbot/types/RichBlockCaption.h delete mode 100644 include/tgbot/types/RichBlockCollage.h delete mode 100644 include/tgbot/types/RichBlockDetails.h delete mode 100644 include/tgbot/types/RichBlockDivider.h delete mode 100644 include/tgbot/types/RichBlockFooter.h delete mode 100644 include/tgbot/types/RichBlockList.h delete mode 100644 include/tgbot/types/RichBlockListItem.h delete mode 100644 include/tgbot/types/RichBlockMap.h delete mode 100644 include/tgbot/types/RichBlockMathematicalExpression.h delete mode 100644 include/tgbot/types/RichBlockParagraph.h delete mode 100644 include/tgbot/types/RichBlockPhoto.h delete mode 100644 include/tgbot/types/RichBlockPreformatted.h delete mode 100644 include/tgbot/types/RichBlockPullQuotation.h delete mode 100644 include/tgbot/types/RichBlockSectionHeading.h delete mode 100644 include/tgbot/types/RichBlockSlideshow.h delete mode 100644 include/tgbot/types/RichBlockTable.h delete mode 100644 include/tgbot/types/RichBlockTableCell.h delete mode 100644 include/tgbot/types/RichBlockThinking.h delete mode 100644 include/tgbot/types/RichBlockVideo.h delete mode 100644 include/tgbot/types/RichBlockVoiceNote.h delete mode 100644 include/tgbot/types/RichMessage.h delete mode 100644 include/tgbot/types/RichText.h delete mode 100644 include/tgbot/types/RichTextAnchor.h delete mode 100644 include/tgbot/types/RichTextAnchorLink.h delete mode 100644 include/tgbot/types/RichTextBankCardNumber.h delete mode 100644 include/tgbot/types/RichTextBold.h delete mode 100644 include/tgbot/types/RichTextBotCommand.h delete mode 100644 include/tgbot/types/RichTextCashtag.h delete mode 100644 include/tgbot/types/RichTextCode.h delete mode 100644 include/tgbot/types/RichTextCustomEmoji.h delete mode 100644 include/tgbot/types/RichTextDateTime.h delete mode 100644 include/tgbot/types/RichTextEmailAddress.h delete mode 100644 include/tgbot/types/RichTextHashtag.h delete mode 100644 include/tgbot/types/RichTextItalic.h delete mode 100644 include/tgbot/types/RichTextMarked.h delete mode 100644 include/tgbot/types/RichTextMathematicalExpression.h delete mode 100644 include/tgbot/types/RichTextMention.h delete mode 100644 include/tgbot/types/RichTextPhoneNumber.h delete mode 100644 include/tgbot/types/RichTextReference.h delete mode 100644 include/tgbot/types/RichTextReferenceLink.h delete mode 100644 include/tgbot/types/RichTextSpoiler.h delete mode 100644 include/tgbot/types/RichTextStrikethrough.h delete mode 100644 include/tgbot/types/RichTextSubscript.h delete mode 100644 include/tgbot/types/RichTextSuperscript.h delete mode 100644 include/tgbot/types/RichTextTextMention.h delete mode 100644 include/tgbot/types/RichTextUnderline.h delete mode 100644 include/tgbot/types/RichTextUrl.h delete mode 100644 include/tgbot/types/SentGuestMessage.h delete mode 100644 include/tgbot/types/SentWebAppMessage.h delete mode 100644 include/tgbot/types/SharedUser.h delete mode 100644 include/tgbot/types/ShippingAddress.h delete mode 100644 include/tgbot/types/ShippingOption.h delete mode 100644 include/tgbot/types/ShippingQuery.h delete mode 100644 include/tgbot/types/StarAmount.h delete mode 100644 include/tgbot/types/StarTransaction.h delete mode 100644 include/tgbot/types/StarTransactions.h delete mode 100644 include/tgbot/types/Sticker.h delete mode 100644 include/tgbot/types/StickerSet.h delete mode 100644 include/tgbot/types/Story.h delete mode 100644 include/tgbot/types/StoryArea.h delete mode 100644 include/tgbot/types/StoryAreaPosition.h delete mode 100644 include/tgbot/types/StoryAreaType.h delete mode 100644 include/tgbot/types/StoryAreaTypeLink.h delete mode 100644 include/tgbot/types/StoryAreaTypeLocation.h delete mode 100644 include/tgbot/types/StoryAreaTypeSuggestedReaction.h delete mode 100644 include/tgbot/types/StoryAreaTypeUniqueGift.h delete mode 100644 include/tgbot/types/StoryAreaTypeWeather.h delete mode 100644 include/tgbot/types/SuccessfulPayment.h delete mode 100644 include/tgbot/types/SuggestedPostApprovalFailed.h delete mode 100644 include/tgbot/types/SuggestedPostApproved.h delete mode 100644 include/tgbot/types/SuggestedPostDeclined.h delete mode 100644 include/tgbot/types/SuggestedPostInfo.h delete mode 100644 include/tgbot/types/SuggestedPostPaid.h delete mode 100644 include/tgbot/types/SuggestedPostParameters.h delete mode 100644 include/tgbot/types/SuggestedPostPrice.h delete mode 100644 include/tgbot/types/SuggestedPostRefunded.h delete mode 100644 include/tgbot/types/SwitchInlineQueryChosenChat.h delete mode 100644 include/tgbot/types/TextQuote.h delete mode 100644 include/tgbot/types/TransactionPartner.h delete mode 100644 include/tgbot/types/TransactionPartnerAffiliateProgram.h delete mode 100644 include/tgbot/types/TransactionPartnerChat.h delete mode 100644 include/tgbot/types/TransactionPartnerFragment.h delete mode 100644 include/tgbot/types/TransactionPartnerOther.h delete mode 100644 include/tgbot/types/TransactionPartnerTelegramAds.h delete mode 100644 include/tgbot/types/TransactionPartnerTelegramApi.h delete mode 100644 include/tgbot/types/TransactionPartnerUser.h delete mode 100644 include/tgbot/types/UniqueGift.h delete mode 100644 include/tgbot/types/UniqueGiftBackdrop.h delete mode 100644 include/tgbot/types/UniqueGiftBackdropColors.h delete mode 100644 include/tgbot/types/UniqueGiftColors.h delete mode 100644 include/tgbot/types/UniqueGiftInfo.h delete mode 100644 include/tgbot/types/UniqueGiftModel.h delete mode 100644 include/tgbot/types/UniqueGiftSymbol.h delete mode 100644 include/tgbot/types/Update.h delete mode 100644 include/tgbot/types/User.h delete mode 100644 include/tgbot/types/UserChatBoosts.h delete mode 100644 include/tgbot/types/UserProfileAudios.h delete mode 100644 include/tgbot/types/UserProfilePhotos.h delete mode 100644 include/tgbot/types/UserRating.h delete mode 100644 include/tgbot/types/UsersShared.h delete mode 100644 include/tgbot/types/Venue.h delete mode 100644 include/tgbot/types/Video.h delete mode 100644 include/tgbot/types/VideoChatEnded.h delete mode 100644 include/tgbot/types/VideoChatParticipantsInvited.h delete mode 100644 include/tgbot/types/VideoChatScheduled.h delete mode 100644 include/tgbot/types/VideoChatStarted.h delete mode 100644 include/tgbot/types/VideoNote.h delete mode 100644 include/tgbot/types/VideoQuality.h delete mode 100644 include/tgbot/types/Voice.h delete mode 100644 include/tgbot/types/WebAppData.h delete mode 100644 include/tgbot/types/WebAppInfo.h delete mode 100644 include/tgbot/types/WebhookInfo.h delete mode 100644 include/tgbot/types/WriteAccessAllowed.h delete mode 100644 include/tgbot/types/types.h delete mode 100644 include/tgbot/types/types_fwd.h rename src/{types => }/InputFile.cpp (94%) create mode 100644 src/Types.cpp delete mode 100644 src/types/AcceptedGiftTypes.cpp delete mode 100644 src/types/AffiliateInfo.cpp delete mode 100644 src/types/Animation.cpp delete mode 100644 src/types/Audio.cpp delete mode 100644 src/types/BackgroundFill.cpp delete mode 100644 src/types/BackgroundFillFreeformGradient.cpp delete mode 100644 src/types/BackgroundFillGradient.cpp delete mode 100644 src/types/BackgroundFillSolid.cpp delete mode 100644 src/types/BackgroundType.cpp delete mode 100644 src/types/BackgroundTypeChatTheme.cpp delete mode 100644 src/types/BackgroundTypeFill.cpp delete mode 100644 src/types/BackgroundTypePattern.cpp delete mode 100644 src/types/BackgroundTypeWallpaper.cpp delete mode 100644 src/types/Birthdate.cpp delete mode 100644 src/types/BotAccessSettings.cpp delete mode 100644 src/types/BotCommand.cpp delete mode 100644 src/types/BotCommandScope.cpp delete mode 100644 src/types/BotCommandScopeAllChatAdministrators.cpp delete mode 100644 src/types/BotCommandScopeAllGroupChats.cpp delete mode 100644 src/types/BotCommandScopeAllPrivateChats.cpp delete mode 100644 src/types/BotCommandScopeChat.cpp delete mode 100644 src/types/BotCommandScopeChatAdministrators.cpp delete mode 100644 src/types/BotCommandScopeChatMember.cpp delete mode 100644 src/types/BotCommandScopeDefault.cpp delete mode 100644 src/types/BotDescription.cpp delete mode 100644 src/types/BotName.cpp delete mode 100644 src/types/BotShortDescription.cpp delete mode 100644 src/types/BotSubscriptionUpdated.cpp delete mode 100644 src/types/BusinessBotRights.cpp delete mode 100644 src/types/BusinessConnection.cpp delete mode 100644 src/types/BusinessIntro.cpp delete mode 100644 src/types/BusinessLocation.cpp delete mode 100644 src/types/BusinessMessagesDeleted.cpp delete mode 100644 src/types/BusinessOpeningHours.cpp delete mode 100644 src/types/BusinessOpeningHoursInterval.cpp delete mode 100644 src/types/CallbackGame.cpp delete mode 100644 src/types/CallbackQuery.cpp delete mode 100644 src/types/Chat.cpp delete mode 100644 src/types/ChatAdministratorRights.cpp delete mode 100644 src/types/ChatBackground.cpp delete mode 100644 src/types/ChatBoost.cpp delete mode 100644 src/types/ChatBoostAdded.cpp delete mode 100644 src/types/ChatBoostRemoved.cpp delete mode 100644 src/types/ChatBoostSource.cpp delete mode 100644 src/types/ChatBoostSourceGiftCode.cpp delete mode 100644 src/types/ChatBoostSourceGiveaway.cpp delete mode 100644 src/types/ChatBoostSourcePremium.cpp delete mode 100644 src/types/ChatBoostUpdated.cpp delete mode 100644 src/types/ChatFullInfo.cpp delete mode 100644 src/types/ChatInviteLink.cpp delete mode 100644 src/types/ChatJoinRequest.cpp delete mode 100644 src/types/ChatLocation.cpp delete mode 100644 src/types/ChatMember.cpp delete mode 100644 src/types/ChatMemberAdministrator.cpp delete mode 100644 src/types/ChatMemberBanned.cpp delete mode 100644 src/types/ChatMemberLeft.cpp delete mode 100644 src/types/ChatMemberMember.cpp delete mode 100644 src/types/ChatMemberOwner.cpp delete mode 100644 src/types/ChatMemberRestricted.cpp delete mode 100644 src/types/ChatMemberUpdated.cpp delete mode 100644 src/types/ChatOwnerChanged.cpp delete mode 100644 src/types/ChatOwnerLeft.cpp delete mode 100644 src/types/ChatPermissions.cpp delete mode 100644 src/types/ChatPhoto.cpp delete mode 100644 src/types/ChatShared.cpp delete mode 100644 src/types/Checklist.cpp delete mode 100644 src/types/ChecklistTask.cpp delete mode 100644 src/types/ChecklistTasksAdded.cpp delete mode 100644 src/types/ChecklistTasksDone.cpp delete mode 100644 src/types/ChosenInlineResult.cpp delete mode 100644 src/types/Community.cpp delete mode 100644 src/types/CommunityChatAdded.cpp delete mode 100644 src/types/CommunityChatRemoved.cpp delete mode 100644 src/types/Contact.cpp delete mode 100644 src/types/CopyTextButton.cpp delete mode 100644 src/types/Dice.cpp delete mode 100644 src/types/DirectMessagePriceChanged.cpp delete mode 100644 src/types/DirectMessagesTopic.cpp delete mode 100644 src/types/Document.cpp delete mode 100644 src/types/EncryptedCredentials.cpp delete mode 100644 src/types/EncryptedPassportElement.cpp delete mode 100644 src/types/ExternalReplyInfo.cpp delete mode 100644 src/types/File.cpp delete mode 100644 src/types/ForceReply.cpp delete mode 100644 src/types/ForumTopic.cpp delete mode 100644 src/types/ForumTopicClosed.cpp delete mode 100644 src/types/ForumTopicCreated.cpp delete mode 100644 src/types/ForumTopicEdited.cpp delete mode 100644 src/types/ForumTopicReopened.cpp delete mode 100644 src/types/Game.cpp delete mode 100644 src/types/GameHighScore.cpp delete mode 100644 src/types/GeneralForumTopicHidden.cpp delete mode 100644 src/types/GeneralForumTopicUnhidden.cpp delete mode 100644 src/types/Gift.cpp delete mode 100644 src/types/GiftBackground.cpp delete mode 100644 src/types/GiftInfo.cpp delete mode 100644 src/types/Gifts.cpp delete mode 100644 src/types/Giveaway.cpp delete mode 100644 src/types/GiveawayCompleted.cpp delete mode 100644 src/types/GiveawayCreated.cpp delete mode 100644 src/types/GiveawayWinners.cpp delete mode 100644 src/types/InaccessibleMessage.cpp delete mode 100644 src/types/InlineKeyboardButton.cpp delete mode 100644 src/types/InlineKeyboardMarkup.cpp delete mode 100644 src/types/InlineQuery.cpp delete mode 100644 src/types/InlineQueryResult.cpp delete mode 100644 src/types/InlineQueryResultArticle.cpp delete mode 100644 src/types/InlineQueryResultAudio.cpp delete mode 100644 src/types/InlineQueryResultCachedAudio.cpp delete mode 100644 src/types/InlineQueryResultCachedDocument.cpp delete mode 100644 src/types/InlineQueryResultCachedGif.cpp delete mode 100644 src/types/InlineQueryResultCachedMpeg4Gif.cpp delete mode 100644 src/types/InlineQueryResultCachedPhoto.cpp delete mode 100644 src/types/InlineQueryResultCachedSticker.cpp delete mode 100644 src/types/InlineQueryResultCachedVideo.cpp delete mode 100644 src/types/InlineQueryResultCachedVoice.cpp delete mode 100644 src/types/InlineQueryResultContact.cpp delete mode 100644 src/types/InlineQueryResultDocument.cpp delete mode 100644 src/types/InlineQueryResultGame.cpp delete mode 100644 src/types/InlineQueryResultGif.cpp delete mode 100644 src/types/InlineQueryResultLocation.cpp delete mode 100644 src/types/InlineQueryResultMpeg4Gif.cpp delete mode 100644 src/types/InlineQueryResultPhoto.cpp delete mode 100644 src/types/InlineQueryResultVenue.cpp delete mode 100644 src/types/InlineQueryResultVideo.cpp delete mode 100644 src/types/InlineQueryResultVoice.cpp delete mode 100644 src/types/InlineQueryResultsButton.cpp delete mode 100644 src/types/InputChecklist.cpp delete mode 100644 src/types/InputChecklistTask.cpp delete mode 100644 src/types/InputContactMessageContent.cpp delete mode 100644 src/types/InputInvoiceMessageContent.cpp delete mode 100644 src/types/InputLocationMessageContent.cpp delete mode 100644 src/types/InputMedia.cpp delete mode 100644 src/types/InputMediaAnimation.cpp delete mode 100644 src/types/InputMediaAudio.cpp delete mode 100644 src/types/InputMediaDocument.cpp delete mode 100644 src/types/InputMediaLink.cpp delete mode 100644 src/types/InputMediaLivePhoto.cpp delete mode 100644 src/types/InputMediaLocation.cpp delete mode 100644 src/types/InputMediaPhoto.cpp delete mode 100644 src/types/InputMediaSticker.cpp delete mode 100644 src/types/InputMediaVenue.cpp delete mode 100644 src/types/InputMediaVideo.cpp delete mode 100644 src/types/InputMediaVoiceNote.cpp delete mode 100644 src/types/InputMessageContent.cpp delete mode 100644 src/types/InputPaidMedia.cpp delete mode 100644 src/types/InputPaidMediaLivePhoto.cpp delete mode 100644 src/types/InputPaidMediaPhoto.cpp delete mode 100644 src/types/InputPaidMediaVideo.cpp delete mode 100644 src/types/InputPollMedia.cpp delete mode 100644 src/types/InputPollOption.cpp delete mode 100644 src/types/InputPollOptionMedia.cpp delete mode 100644 src/types/InputProfilePhoto.cpp delete mode 100644 src/types/InputProfilePhotoAnimated.cpp delete mode 100644 src/types/InputProfilePhotoStatic.cpp delete mode 100644 src/types/InputRichBlock.cpp delete mode 100644 src/types/InputRichBlockAnchor.cpp delete mode 100644 src/types/InputRichBlockAnimation.cpp delete mode 100644 src/types/InputRichBlockAudio.cpp delete mode 100644 src/types/InputRichBlockBlockQuotation.cpp delete mode 100644 src/types/InputRichBlockCollage.cpp delete mode 100644 src/types/InputRichBlockDetails.cpp delete mode 100644 src/types/InputRichBlockDivider.cpp delete mode 100644 src/types/InputRichBlockFooter.cpp delete mode 100644 src/types/InputRichBlockList.cpp delete mode 100644 src/types/InputRichBlockListItem.cpp delete mode 100644 src/types/InputRichBlockMap.cpp delete mode 100644 src/types/InputRichBlockMathematicalExpression.cpp delete mode 100644 src/types/InputRichBlockParagraph.cpp delete mode 100644 src/types/InputRichBlockPhoto.cpp delete mode 100644 src/types/InputRichBlockPreformatted.cpp delete mode 100644 src/types/InputRichBlockPullQuotation.cpp delete mode 100644 src/types/InputRichBlockSectionHeading.cpp delete mode 100644 src/types/InputRichBlockSlideshow.cpp delete mode 100644 src/types/InputRichBlockTable.cpp delete mode 100644 src/types/InputRichBlockThinking.cpp delete mode 100644 src/types/InputRichBlockVideo.cpp delete mode 100644 src/types/InputRichBlockVoiceNote.cpp delete mode 100644 src/types/InputRichMessage.cpp delete mode 100644 src/types/InputRichMessageContent.cpp delete mode 100644 src/types/InputRichMessageMedia.cpp delete mode 100644 src/types/InputSticker.cpp delete mode 100644 src/types/InputStoryContent.cpp delete mode 100644 src/types/InputStoryContentPhoto.cpp delete mode 100644 src/types/InputStoryContentVideo.cpp delete mode 100644 src/types/InputTextMessageContent.cpp delete mode 100644 src/types/InputVenueMessageContent.cpp delete mode 100644 src/types/Invoice.cpp delete mode 100644 src/types/KeyboardButton.cpp delete mode 100644 src/types/KeyboardButtonPollType.cpp delete mode 100644 src/types/KeyboardButtonRequestChat.cpp delete mode 100644 src/types/KeyboardButtonRequestManagedBot.cpp delete mode 100644 src/types/KeyboardButtonRequestUsers.cpp delete mode 100644 src/types/LabeledPrice.cpp delete mode 100644 src/types/Link.cpp delete mode 100644 src/types/LinkPreviewOptions.cpp delete mode 100644 src/types/LivePhoto.cpp delete mode 100644 src/types/Location.cpp delete mode 100644 src/types/LocationAddress.cpp delete mode 100644 src/types/LoginUrl.cpp delete mode 100644 src/types/ManagedBotCreated.cpp delete mode 100644 src/types/ManagedBotUpdated.cpp delete mode 100644 src/types/MaskPosition.cpp delete mode 100644 src/types/MaybeInaccessibleMessage.cpp delete mode 100644 src/types/MenuButton.cpp delete mode 100644 src/types/MenuButtonCommands.cpp delete mode 100644 src/types/MenuButtonDefault.cpp delete mode 100644 src/types/MenuButtonWebApp.cpp delete mode 100644 src/types/Message.cpp delete mode 100644 src/types/MessageAutoDeleteTimerChanged.cpp delete mode 100644 src/types/MessageEntity.cpp delete mode 100644 src/types/MessageId.cpp delete mode 100644 src/types/MessageOrigin.cpp delete mode 100644 src/types/MessageOriginChannel.cpp delete mode 100644 src/types/MessageOriginChat.cpp delete mode 100644 src/types/MessageOriginHiddenUser.cpp delete mode 100644 src/types/MessageOriginUser.cpp delete mode 100644 src/types/MessageReactionCountUpdated.cpp delete mode 100644 src/types/MessageReactionUpdated.cpp delete mode 100644 src/types/OrderInfo.cpp delete mode 100644 src/types/OwnedGift.cpp delete mode 100644 src/types/OwnedGiftRegular.cpp delete mode 100644 src/types/OwnedGiftUnique.cpp delete mode 100644 src/types/OwnedGifts.cpp delete mode 100644 src/types/PaidMedia.cpp delete mode 100644 src/types/PaidMediaInfo.cpp delete mode 100644 src/types/PaidMediaLivePhoto.cpp delete mode 100644 src/types/PaidMediaPhoto.cpp delete mode 100644 src/types/PaidMediaPreview.cpp delete mode 100644 src/types/PaidMediaPurchased.cpp delete mode 100644 src/types/PaidMediaVideo.cpp delete mode 100644 src/types/PaidMessagePriceChanged.cpp delete mode 100644 src/types/PassportData.cpp delete mode 100644 src/types/PassportElementError.cpp delete mode 100644 src/types/PassportElementErrorDataField.cpp delete mode 100644 src/types/PassportElementErrorFile.cpp delete mode 100644 src/types/PassportElementErrorFiles.cpp delete mode 100644 src/types/PassportElementErrorFrontSide.cpp delete mode 100644 src/types/PassportElementErrorReverseSide.cpp delete mode 100644 src/types/PassportElementErrorSelfie.cpp delete mode 100644 src/types/PassportElementErrorTranslationFile.cpp delete mode 100644 src/types/PassportElementErrorTranslationFiles.cpp delete mode 100644 src/types/PassportElementErrorUnspecified.cpp delete mode 100644 src/types/PassportFile.cpp delete mode 100644 src/types/PhotoSize.cpp delete mode 100644 src/types/Poll.cpp delete mode 100644 src/types/PollAnswer.cpp delete mode 100644 src/types/PollMedia.cpp delete mode 100644 src/types/PollOption.cpp delete mode 100644 src/types/PollOptionAdded.cpp delete mode 100644 src/types/PollOptionDeleted.cpp delete mode 100644 src/types/PreCheckoutQuery.cpp delete mode 100644 src/types/PreparedInlineMessage.cpp delete mode 100644 src/types/PreparedKeyboardButton.cpp delete mode 100644 src/types/ProximityAlertTriggered.cpp delete mode 100644 src/types/ReactionCount.cpp delete mode 100644 src/types/ReactionType.cpp delete mode 100644 src/types/ReactionTypeCustomEmoji.cpp delete mode 100644 src/types/ReactionTypeEmoji.cpp delete mode 100644 src/types/ReactionTypePaid.cpp delete mode 100644 src/types/RefundedPayment.cpp delete mode 100644 src/types/ReplyKeyboardMarkup.cpp delete mode 100644 src/types/ReplyKeyboardRemove.cpp delete mode 100644 src/types/ReplyParameters.cpp delete mode 100644 src/types/ResponseParameters.cpp delete mode 100644 src/types/RevenueWithdrawalState.cpp delete mode 100644 src/types/RevenueWithdrawalStateFailed.cpp delete mode 100644 src/types/RevenueWithdrawalStatePending.cpp delete mode 100644 src/types/RevenueWithdrawalStateSucceeded.cpp delete mode 100644 src/types/RichBlock.cpp delete mode 100644 src/types/RichBlockAnchor.cpp delete mode 100644 src/types/RichBlockAnimation.cpp delete mode 100644 src/types/RichBlockAudio.cpp delete mode 100644 src/types/RichBlockBlockQuotation.cpp delete mode 100644 src/types/RichBlockCaption.cpp delete mode 100644 src/types/RichBlockCollage.cpp delete mode 100644 src/types/RichBlockDetails.cpp delete mode 100644 src/types/RichBlockDivider.cpp delete mode 100644 src/types/RichBlockFooter.cpp delete mode 100644 src/types/RichBlockList.cpp delete mode 100644 src/types/RichBlockListItem.cpp delete mode 100644 src/types/RichBlockMap.cpp delete mode 100644 src/types/RichBlockMathematicalExpression.cpp delete mode 100644 src/types/RichBlockParagraph.cpp delete mode 100644 src/types/RichBlockPhoto.cpp delete mode 100644 src/types/RichBlockPreformatted.cpp delete mode 100644 src/types/RichBlockPullQuotation.cpp delete mode 100644 src/types/RichBlockSectionHeading.cpp delete mode 100644 src/types/RichBlockSlideshow.cpp delete mode 100644 src/types/RichBlockTable.cpp delete mode 100644 src/types/RichBlockTableCell.cpp delete mode 100644 src/types/RichBlockThinking.cpp delete mode 100644 src/types/RichBlockVideo.cpp delete mode 100644 src/types/RichBlockVoiceNote.cpp delete mode 100644 src/types/RichMessage.cpp delete mode 100644 src/types/RichText.cpp delete mode 100644 src/types/RichTextAnchor.cpp delete mode 100644 src/types/RichTextAnchorLink.cpp delete mode 100644 src/types/RichTextBankCardNumber.cpp delete mode 100644 src/types/RichTextBold.cpp delete mode 100644 src/types/RichTextBotCommand.cpp delete mode 100644 src/types/RichTextCashtag.cpp delete mode 100644 src/types/RichTextCode.cpp delete mode 100644 src/types/RichTextCustomEmoji.cpp delete mode 100644 src/types/RichTextDateTime.cpp delete mode 100644 src/types/RichTextEmailAddress.cpp delete mode 100644 src/types/RichTextHashtag.cpp delete mode 100644 src/types/RichTextItalic.cpp delete mode 100644 src/types/RichTextMarked.cpp delete mode 100644 src/types/RichTextMathematicalExpression.cpp delete mode 100644 src/types/RichTextMention.cpp delete mode 100644 src/types/RichTextPhoneNumber.cpp delete mode 100644 src/types/RichTextReference.cpp delete mode 100644 src/types/RichTextReferenceLink.cpp delete mode 100644 src/types/RichTextSpoiler.cpp delete mode 100644 src/types/RichTextStrikethrough.cpp delete mode 100644 src/types/RichTextSubscript.cpp delete mode 100644 src/types/RichTextSuperscript.cpp delete mode 100644 src/types/RichTextTextMention.cpp delete mode 100644 src/types/RichTextUnderline.cpp delete mode 100644 src/types/RichTextUrl.cpp delete mode 100644 src/types/SentGuestMessage.cpp delete mode 100644 src/types/SentWebAppMessage.cpp delete mode 100644 src/types/SharedUser.cpp delete mode 100644 src/types/ShippingAddress.cpp delete mode 100644 src/types/ShippingOption.cpp delete mode 100644 src/types/ShippingQuery.cpp delete mode 100644 src/types/StarAmount.cpp delete mode 100644 src/types/StarTransaction.cpp delete mode 100644 src/types/StarTransactions.cpp delete mode 100644 src/types/Sticker.cpp delete mode 100644 src/types/StickerSet.cpp delete mode 100644 src/types/Story.cpp delete mode 100644 src/types/StoryArea.cpp delete mode 100644 src/types/StoryAreaPosition.cpp delete mode 100644 src/types/StoryAreaType.cpp delete mode 100644 src/types/StoryAreaTypeLink.cpp delete mode 100644 src/types/StoryAreaTypeLocation.cpp delete mode 100644 src/types/StoryAreaTypeSuggestedReaction.cpp delete mode 100644 src/types/StoryAreaTypeUniqueGift.cpp delete mode 100644 src/types/StoryAreaTypeWeather.cpp delete mode 100644 src/types/SuccessfulPayment.cpp delete mode 100644 src/types/SuggestedPostApprovalFailed.cpp delete mode 100644 src/types/SuggestedPostApproved.cpp delete mode 100644 src/types/SuggestedPostDeclined.cpp delete mode 100644 src/types/SuggestedPostInfo.cpp delete mode 100644 src/types/SuggestedPostPaid.cpp delete mode 100644 src/types/SuggestedPostParameters.cpp delete mode 100644 src/types/SuggestedPostPrice.cpp delete mode 100644 src/types/SuggestedPostRefunded.cpp delete mode 100644 src/types/SwitchInlineQueryChosenChat.cpp delete mode 100644 src/types/TextQuote.cpp delete mode 100644 src/types/TransactionPartner.cpp delete mode 100644 src/types/TransactionPartnerAffiliateProgram.cpp delete mode 100644 src/types/TransactionPartnerChat.cpp delete mode 100644 src/types/TransactionPartnerFragment.cpp delete mode 100644 src/types/TransactionPartnerOther.cpp delete mode 100644 src/types/TransactionPartnerTelegramAds.cpp delete mode 100644 src/types/TransactionPartnerTelegramApi.cpp delete mode 100644 src/types/TransactionPartnerUser.cpp delete mode 100644 src/types/UniqueGift.cpp delete mode 100644 src/types/UniqueGiftBackdrop.cpp delete mode 100644 src/types/UniqueGiftBackdropColors.cpp delete mode 100644 src/types/UniqueGiftColors.cpp delete mode 100644 src/types/UniqueGiftInfo.cpp delete mode 100644 src/types/UniqueGiftModel.cpp delete mode 100644 src/types/UniqueGiftSymbol.cpp delete mode 100644 src/types/Update.cpp delete mode 100644 src/types/User.cpp delete mode 100644 src/types/UserChatBoosts.cpp delete mode 100644 src/types/UserProfileAudios.cpp delete mode 100644 src/types/UserProfilePhotos.cpp delete mode 100644 src/types/UserRating.cpp delete mode 100644 src/types/UsersShared.cpp delete mode 100644 src/types/Venue.cpp delete mode 100644 src/types/Video.cpp delete mode 100644 src/types/VideoChatEnded.cpp delete mode 100644 src/types/VideoChatParticipantsInvited.cpp delete mode 100644 src/types/VideoChatScheduled.cpp delete mode 100644 src/types/VideoChatStarted.cpp delete mode 100644 src/types/VideoNote.cpp delete mode 100644 src/types/VideoQuality.cpp delete mode 100644 src/types/Voice.cpp delete mode 100644 src/types/WebAppData.cpp delete mode 100644 src/types/WebAppInfo.cpp delete mode 100644 src/types/WebhookInfo.cpp delete mode 100644 src/types/WriteAccessAllowed.cpp diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 9fdb0abc..cff02cde 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -14,7 +14,7 @@ permissions: jobs: test: runs-on: ubuntu-24.04 - timeout-minutes: 60 + timeout-minutes: 30 steps: - uses: actions/checkout@v6 - uses: docker/setup-buildx-action@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 556b2d85..89b12c6d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ permissions: jobs: lint: runs-on: ubuntu-24.04 - timeout-minutes: 60 + timeout-minutes: 30 steps: - uses: actions/checkout@v6 - id: python diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ccf2023..df42b89b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,8 +13,6 @@ find_package(CURL 7.58.0 REQUIRED) find_package(nlohmann_json 3.7.3 REQUIRED) find_package(Threads REQUIRED) -file(GLOB TYPE_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/types/*.cpp") - add_library(TgBot src/Api.cpp src/ApiCodec.cpp @@ -26,7 +24,8 @@ add_library(TgBot src/TgLongPoll.cpp src/TgWebhookLocalServer.cpp src/TgWebhookTcpServer.cpp - ${TYPE_SOURCES} + src/InputFile.cpp + src/Types.cpp ) add_library(TgBot::TgBot ALIAS TgBot) diff --git a/Dockerfile_test b/Dockerfile_test index a2e13a54..0f21be08 100644 --- a/Dockerfile_test +++ b/Dockerfile_test @@ -47,12 +47,12 @@ RUN make test && \ RUN make example EXAMPLE=echobot RUN make example EXAMPLE=echobot-proxy RUN make example EXAMPLE=echobot-setmycommands -RUN make example EXAMPLE=echobot-submodule RUN make example EXAMPLE=echobot-webhook-server RUN make example EXAMPLE=inline-keyboard RUN make example EXAMPLE=photo RUN make example EXAMPLE=receive-file RUN make example EXAMPLE=received-text-processing RUN make example EXAMPLE=reply-keyboard +RUN make example EXAMPLE=echobot-submodule CMD ["make", "test-only"] diff --git a/api_codegen/generate.py b/api_codegen/generate.py index 3ea36bbc..3abecdbc 100644 --- a/api_codegen/generate.py +++ b/api_codegen/generate.py @@ -22,7 +22,6 @@ trim_blocks=True, lstrip_blocks=True, ) -GENERATED_MARKER = "// Generated by `make api-generate`. Do not edit." CONFIG = yaml.safe_load(DEFAULT_CONFIG.read_text(encoding="utf-8")) TYPE_CONFIG = CONFIG.get("types", {}) API_CONFIG = CONFIG.get("api", {}) @@ -111,41 +110,18 @@ def generate_openapi(schema_path: Path, root: Path) -> GeneratedCount: } objects = _build_objects(components) methods = _build_methods(document["paths"]) - api_objects = _api_objects(methods, objects) outputs = { - root / "include" / "tgbot" / "types" / "types_fwd.h": _render_template( - "types_fwd.h.j2", objects=objects - ), - root / "include" / "tgbot" / "types" / "types.h": _render_template( + root / "include" / "tgbot" / "Types.h": _render_template( "types.h.j2", objects=objects ), + root / "src" / "Types.cpp": _render_template("types.cpp.j2", objects=objects), root / "include" / "tgbot" / "ApiMethods.inc.h": _render_template( "api_methods.inc.h.j2", methods=methods ), root / "src" / "ApiMethods.cpp": _render_template( - "api_methods.cpp.j2", methods=methods, objects=api_objects + "api_methods.cpp.j2", methods=methods ), } - type_headers = { - root / "include" / "tgbot" / "types" / f"{object.name}.h": _render_template( - "type.h.j2", - object=object, - ) - for object in objects - } - outputs.update(type_headers) - type_sources = { - root / "src" / "types" / f"{object.name}.cpp": _render_template( - "type.cpp.j2", - object=object, - ) - for object in objects - } - outputs.update(type_sources) - expected_type_headers = set(type_headers) - expected_type_headers.add(root / "include" / "tgbot" / "types" / "types_fwd.h") - _sync_generated_type_headers(root, expected_type_headers) - _sync_generated_type_sources(root, set(type_sources)) for path, content in outputs.items(): _write(path, content) @@ -220,24 +196,6 @@ def _object_constants(fields: tuple[FieldModel, ...]) -> tuple[ConstantModel, .. return tuple(field.constant for field in fields if field.constant) -def _api_objects( - methods: tuple[MethodModel, ...], objects: tuple[ObjectModel, ...] -) -> tuple[ObjectModel, ...]: - object_names = {object.name for object in objects} - cpp_types = [method.return_type for method in methods] - cpp_types.extend( - parameter.cpp_type for method in methods for parameter in method.parameters - ) - used_names = { - token - for cpp_type in cpp_types - for token in re.findall(r"\b[A-Z][A-Za-z0-9]*\b", cpp_type) - if token in object_names - } - - return tuple(object for object in objects if object.name in used_names) - - def _object_dependencies( name: str, fields: tuple[FieldModel, ...], @@ -426,34 +384,6 @@ def _write(path: Path, content: str) -> None: path.write_text(content, encoding="utf-8") -def _sync_generated_type_headers(root: Path, expected_paths: set[Path]) -> None: - types_dir = root / "include" / "tgbot" / "types" - if not types_dir.exists(): - return - stale_paths = [ - path - for path in types_dir.glob("*.h") - if path not in expected_paths - and path.read_text(encoding="utf-8").startswith(GENERATED_MARKER) - ] - for path in stale_paths: - path.unlink() - - -def _sync_generated_type_sources(root: Path, expected_paths: set[Path]) -> None: - types_dir = root / "src" / "types" - if not types_dir.exists(): - return - stale_paths = [ - path - for path in types_dir.glob("*.cpp") - if path not in expected_paths - and path.read_text(encoding="utf-8").startswith(GENERATED_MARKER) - ] - for path in stale_paths: - path.unlink() - - def _format_cpp(path: Path, content: str) -> str: if path.name.endswith(".inc.h"): return _format_cpp_class_fragment(path, content) diff --git a/api_codegen/templates/api_methods.cpp.j2 b/api_codegen/templates/api_methods.cpp.j2 index 1090e110..963666e1 100644 --- a/api_codegen/templates/api_methods.cpp.j2 +++ b/api_codegen/templates/api_methods.cpp.j2 @@ -2,9 +2,7 @@ #include "tgbot/Api.h" #include "tgbot/ApiCodec.h" -{% for object in objects %} -#include "tgbot/types/{{ object.name }}.h" -{% endfor %} +#include "tgbot/Types.h" namespace TgBot { diff --git a/api_codegen/templates/type.h.j2 b/api_codegen/templates/type.h.j2 deleted file mode 100644 index 35ff4e5b..00000000 --- a/api_codegen/templates/type.h.j2 +++ /dev/null @@ -1,75 +0,0 @@ -// Generated by `make api-generate`. Do not edit. - -#pragma once - -#include "tgbot/export.h" - -#include -{% for header in object.standard_headers %} -#include <{{ header }}> -{% endfor %} - -namespace TgBot { - -{% for dependency in object.dependencies %} -struct {{ dependency }}; -{% endfor %} -{% if object.dependencies %} - -{% endif %} - -/** - * @brief{{ " " + object.description[0] if object.description else "" }} -{% for line in object.description[1:] %} - * {{ line }} -{% endfor %} - */ -struct {{ object.name }} { - using Ptr = std::shared_ptr<{{ object.name }}>; - -{% for constant in object.constants %} - static TGBOT_API const std::string {{ constant.name }}; -{% endfor %} -{% if object.constants %} - -{% endif %} -{% for enum in object.enums %} - enum class {{ enum.name }} { -{% for value in enum.values %} - {{ value.name }}{{ "," if not loop.last else "" }} -{% endfor %} - }; - -{% endfor %} -{% if object.union_members %} - std::variant< -{% for member in object.union_members %} - std::shared_ptr<{{ member }}>{{ "," if not loop.last else "" }} -{% endfor %} - > - value; -{% else %} -{% for field in object.fields %} - /** - * @brief{{ " " + field.description[0] if field.description else "" }} -{% for line in field.description[1:] %} - * {{ line }} -{% endfor %} - */ - {{ field.cpp_type }} {{ field.cpp_name }} { {{ field.constant.name if field.constant else "" }} }; - -{% endfor %} -{% endif %} -}; - -{% for enum in object.enums %} -TGBOT_API void from_json(const nlohmann::json& json, {{ object.name }}::{{ enum.name }}& value); -TGBOT_API void to_json(nlohmann::json& json, const {{ object.name }}::{{ enum.name }}& value); -{% endfor %} -{% if object.enums %} - -{% endif %} -TGBOT_API void from_json(const nlohmann::json& json, {{ object.name }}& value); -TGBOT_API void to_json(nlohmann::json& json, const {{ object.name }}& value); - -} // namespace TgBot diff --git a/api_codegen/templates/type.cpp.j2 b/api_codegen/templates/types.cpp.j2 similarity index 92% rename from api_codegen/templates/type.cpp.j2 rename to api_codegen/templates/types.cpp.j2 index 60a94cd2..b9a7a962 100644 --- a/api_codegen/templates/type.cpp.j2 +++ b/api_codegen/templates/types.cpp.j2 @@ -1,17 +1,13 @@ // Generated by `make api-generate`. Do not edit. -#include "tgbot/types/{{ object.name }}.h" #include "tgbot/Json.h" -{% for dependency in object.dependencies %} -#include "tgbot/types/{{ dependency }}.h" -{% endfor %} -{% if object.enums %} +#include "tgbot/Types.h" #include -{% endif %} namespace TgBot { +{% for object in objects %} {% for constant in object.constants %} const std::string {{ object.name }}::{{ constant.name }} = "{{ constant.value }}"; {% endfor %} @@ -63,4 +59,5 @@ void to_json(nlohmann::json& json, const {{ object.name }}& value) { {% endif %} } +{% endfor %} } // namespace TgBot diff --git a/api_codegen/templates/types.h.j2 b/api_codegen/templates/types.h.j2 index c92c7720..f6860f05 100644 --- a/api_codegen/templates/types.h.j2 +++ b/api_codegen/templates/types.h.j2 @@ -2,7 +2,77 @@ #pragma once -#include "tgbot/types/InputFile.h" +#include "tgbot/export.h" + +#include + +#include +#include +#include +#include +#include +#include + +namespace TgBot { + {% for object in objects %} -#include "tgbot/types/{{ object.name }}.h" +struct {{ object.name }}; +{% endfor %} + +{% for object in objects %} +/** + * @brief{{ " " + object.description[0] if object.description else "" }} +{% for line in object.description[1:] %} + * {{ line }} +{% endfor %} + */ +struct {{ object.name }} { + using Ptr = std::shared_ptr<{{ object.name }}>; + +{% for constant in object.constants %} + static TGBOT_API const std::string {{ constant.name }}; +{% endfor %} +{% if object.constants %} + +{% endif %} +{% for enum in object.enums %} + enum class {{ enum.name }} { +{% for value in enum.values %} + {{ value.name }}{{ "," if not loop.last else "" }} +{% endfor %} + }; + +{% endfor %} +{% if object.union_members %} + std::variant< +{% for member in object.union_members %} + std::shared_ptr<{{ member }}>{{ "," if not loop.last else "" }} +{% endfor %} + > + value; +{% else %} +{% for field in object.fields %} + /** + * @brief{{ " " + field.description[0] if field.description else "" }} +{% for line in field.description[1:] %} + * {{ line }} +{% endfor %} + */ + {{ field.cpp_type }} {{ field.cpp_name }} { {{ field.constant.name if field.constant else "" }} }; + +{% endfor %} +{% endif %} +}; + +{% for enum in object.enums %} +TGBOT_API void from_json(const nlohmann::json& json, {{ object.name }}::{{ enum.name }}& value); +TGBOT_API void to_json(nlohmann::json& json, const {{ object.name }}::{{ enum.name }}& value); +{% endfor %} +{% if object.enums %} + +{% endif %} +TGBOT_API void from_json(const nlohmann::json& json, {{ object.name }}& value); +TGBOT_API void to_json(nlohmann::json& json, const {{ object.name }}& value); + {% endfor %} +} // namespace TgBot diff --git a/api_codegen/templates/types_fwd.h.j2 b/api_codegen/templates/types_fwd.h.j2 deleted file mode 100644 index 17804336..00000000 --- a/api_codegen/templates/types_fwd.h.j2 +++ /dev/null @@ -1,11 +0,0 @@ -// Generated by `make api-generate`. Do not edit. - -#pragma once - -namespace TgBot { - -{% for object in objects %} -struct {{ object.name }}; -{% endfor %} - -} // namespace TgBot diff --git a/api_codegen/tests/test_generate.py b/api_codegen/tests/test_generate.py index 4e31676d..017222f4 100644 --- a/api_codegen/tests/test_generate.py +++ b/api_codegen/tests/test_generate.py @@ -184,42 +184,36 @@ def test_generate_openapi_renders_types_methods_and_documentation( generated = generate_openapi(schema_path, tmp_path) - types = tmp_path.joinpath("include/tgbot/types/types.h").read_text() - user = tmp_path.joinpath("include/tgbot/types/User.h").read_text() - cached_audio = tmp_path.joinpath( - "include/tgbot/types/InlineQueryResultCachedAudio.h" - ).read_text() - user_source = tmp_path.joinpath("src/types/User.cpp").read_text() - cached_audio_source = tmp_path.joinpath( - "src/types/InlineQueryResultCachedAudio.cpp" - ).read_text() + types = tmp_path.joinpath("include/tgbot/Types.h").read_text() + types_source = tmp_path.joinpath("src/Types.cpp").read_text() api_source = tmp_path.joinpath("src/ApiMethods.cpp").read_text() methods = tmp_path.joinpath("include/tgbot/ApiMethods.inc.h").read_text() assert generated.objects == 2 assert generated.methods == 2 - assert user.startswith( + assert types.startswith( "// Generated by `make api-generate`. Do not edit.\n\n#pragma once" ) - assert '#include "tgbot/types/User.h"' in types - assert "struct User" not in types - assert "struct User" in user - assert "This object represents a Telegram user." in user - assert "Unique identifier for this user." in user - assert "@brief This object represents a Telegram user." in user - assert "@brief Unique identifier for this user." in user - assert "static TGBOT_API const std::string TYPE;" in cached_audio - assert "TGBOT_API void from_json" in cached_audio - assert "TGBOT_API void to_json" in cached_audio - assert "std::string type { TYPE };" in cached_audio - assert "std::string id { };\n\n /**" in cached_audio + assert "struct User;" in types + assert "struct InlineQueryResultCachedAudio;" in types + assert "struct User {" in types + assert "This object represents a Telegram user." in types + assert "Unique identifier for this user." in types + assert "@brief This object represents a Telegram user." in types + assert "@brief Unique identifier for this user." in types + assert "static TGBOT_API const std::string TYPE;" in types + assert "TGBOT_API void from_json" in types + assert "TGBOT_API void to_json" in types + assert "std::string type { TYPE };" in types + assert "std::string id { };\n\n /**" in types assert ( 'const std::string InlineQueryResultCachedAudio::TYPE = "audio";' - in cached_audio_source + in types_source ) - assert '#include "tgbot/Json.h"' in user_source - assert '#include "tgbot/types/User.h"' in cached_audio_source - assert 'Json::readRequiredField(json, "id", value.id);' in user_source - assert not tmp_path.joinpath("src/Types.cpp").exists() + assert '#include "tgbot/Json.h"' in types_source + assert '#include "tgbot/Types.h"' in types_source + assert 'Json::readRequiredField(json, "id", value.id);' in types_source + assert not tmp_path.joinpath("include/tgbot/types").exists() + assert not tmp_path.joinpath("src/types").exists() assert "\n /**\n * @brief Returns information about the bot.\n" in methods assert "\n std::shared_ptr getMe() const" in methods assert "Returns information about the bot." in methods @@ -236,40 +230,11 @@ def test_generate_openapi_renders_types_methods_and_documentation( generated_again = generate_openapi(schema_path, tmp_path) assert generated_again == generated - assert tmp_path.joinpath("include/tgbot/types/User.h").read_text() == user + assert tmp_path.joinpath("include/tgbot/Types.h").read_text() == types + assert tmp_path.joinpath("src/Types.cpp").read_text() == types_source assert tmp_path.joinpath("src/ApiMethods.cpp").read_text() == api_source -def test_generate_openapi_removes_only_stale_generated_type_files( - tmp_path: Path, -) -> None: - schema_path = tmp_path / "schema.yaml" - schema_path.write_text(yaml.safe_dump(_schema()), encoding="utf-8") - types_dir = tmp_path / "include" / "tgbot" / "types" - types_dir.mkdir(parents=True) - stale = types_dir / "OldType.h" - stale.write_text( - "// Generated by `make api-generate`. Do not edit.\n", encoding="utf-8" - ) - manual = types_dir / "InputFile.h" - manual.write_text("// Hand-written.\n", encoding="utf-8") - type_sources_dir = tmp_path / "src" / "types" - type_sources_dir.mkdir(parents=True) - stale_source = type_sources_dir / "OldType.cpp" - stale_source.write_text( - "// Generated by `make api-generate`. Do not edit.\n", encoding="utf-8" - ) - manual_source = type_sources_dir / "InputFile.cpp" - manual_source.write_text("// Hand-written.\n", encoding="utf-8") - - generate_openapi(schema_path, tmp_path) - - assert not stale.exists() - assert manual.read_text(encoding="utf-8") == "// Hand-written.\n" - assert not stale_source.exists() - assert manual_source.read_text(encoding="utf-8") == "// Hand-written.\n" - - def test_generate_openapi_rejects_method_without_result_schema(tmp_path: Path) -> None: schema = _schema() response_parts = schema["paths"]["/getMe"]["post"]["responses"]["200"]["content"][ diff --git a/include/tgbot/Api.h b/include/tgbot/Api.h index 2c91d2f9..382a3f53 100644 --- a/include/tgbot/Api.h +++ b/include/tgbot/Api.h @@ -1,10 +1,9 @@ #pragma once #include "tgbot/HttpFormField.h" +#include "tgbot/InputFile.h" +#include "tgbot/Types.h" #include "tgbot/export.h" -#include "tgbot/types/InputFile.h" -#include "tgbot/types/Sticker.h" -#include "tgbot/types/types_fwd.h" #include diff --git a/include/tgbot/ApiCodec.h b/include/tgbot/ApiCodec.h index 13e1340e..b724575c 100644 --- a/include/tgbot/ApiCodec.h +++ b/include/tgbot/ApiCodec.h @@ -1,8 +1,8 @@ #pragma once #include "tgbot/HttpFormField.h" +#include "tgbot/InputFile.h" #include "tgbot/Json.h" -#include "tgbot/types/InputFile.h" #include diff --git a/include/tgbot/EventBroadcaster.h b/include/tgbot/EventBroadcaster.h index 8a7b7bf9..39fd2bf5 100644 --- a/include/tgbot/EventBroadcaster.h +++ b/include/tgbot/EventBroadcaster.h @@ -1,19 +1,7 @@ #pragma once +#include "tgbot/Types.h" #include "tgbot/export.h" -#include "tgbot/types/CallbackQuery.h" -#include "tgbot/types/ChatJoinRequest.h" -#include "tgbot/types/ChatMemberUpdated.h" -#include "tgbot/types/ChosenInlineResult.h" -#include "tgbot/types/InlineQuery.h" -#include "tgbot/types/Message.h" -#include "tgbot/types/MessageReactionCountUpdated.h" -#include "tgbot/types/MessageReactionUpdated.h" -#include "tgbot/types/Poll.h" -#include "tgbot/types/PollAnswer.h" -#include "tgbot/types/PreCheckoutQuery.h" -#include "tgbot/types/ShippingQuery.h" -#include "tgbot/types/SuccessfulPayment.h" #include #include diff --git a/include/tgbot/EventHandler.h b/include/tgbot/EventHandler.h index fce8b8ad..50469125 100644 --- a/include/tgbot/EventHandler.h +++ b/include/tgbot/EventHandler.h @@ -1,9 +1,8 @@ #pragma once #include "tgbot/EventBroadcaster.h" +#include "tgbot/Types.h" #include "tgbot/export.h" -#include "tgbot/types/Message.h" -#include "tgbot/types/Update.h" namespace TgBot { diff --git a/include/tgbot/types/InputFile.h b/include/tgbot/InputFile.h similarity index 100% rename from include/tgbot/types/InputFile.h rename to include/tgbot/InputFile.h diff --git a/include/tgbot/TgLongPoll.h b/include/tgbot/TgLongPoll.h index 8c3684a8..9a064392 100644 --- a/include/tgbot/TgLongPoll.h +++ b/include/tgbot/TgLongPoll.h @@ -1,7 +1,7 @@ #pragma once +#include "tgbot/Types.h" #include "tgbot/export.h" -#include "tgbot/types/Update.h" #include #include diff --git a/include/tgbot/Types.h b/include/tgbot/Types.h new file mode 100644 index 00000000..9eea2f88 --- /dev/null +++ b/include/tgbot/Types.h @@ -0,0 +1,15060 @@ +// Generated by `make api-generate`. Do not edit. + +#pragma once + +#include "tgbot/export.h" + +#include + +#include +#include +#include +#include +#include +#include + +namespace TgBot { + +struct AcceptedGiftTypes; +struct AffiliateInfo; +struct Animation; +struct Audio; +struct BackgroundFill; +struct BackgroundFillFreeformGradient; +struct BackgroundFillGradient; +struct BackgroundFillSolid; +struct BackgroundType; +struct BackgroundTypeChatTheme; +struct BackgroundTypeFill; +struct BackgroundTypePattern; +struct BackgroundTypeWallpaper; +struct Birthdate; +struct BotAccessSettings; +struct BotCommand; +struct BotCommandScope; +struct BotCommandScopeAllChatAdministrators; +struct BotCommandScopeAllGroupChats; +struct BotCommandScopeAllPrivateChats; +struct BotCommandScopeChat; +struct BotCommandScopeChatAdministrators; +struct BotCommandScopeChatMember; +struct BotCommandScopeDefault; +struct BotDescription; +struct BotName; +struct BotShortDescription; +struct BotSubscriptionUpdated; +struct BusinessBotRights; +struct BusinessConnection; +struct BusinessIntro; +struct BusinessLocation; +struct BusinessMessagesDeleted; +struct BusinessOpeningHours; +struct BusinessOpeningHoursInterval; +struct CallbackGame; +struct CallbackQuery; +struct Chat; +struct ChatAdministratorRights; +struct ChatBackground; +struct ChatBoost; +struct ChatBoostAdded; +struct ChatBoostRemoved; +struct ChatBoostSource; +struct ChatBoostSourceGiftCode; +struct ChatBoostSourceGiveaway; +struct ChatBoostSourcePremium; +struct ChatBoostUpdated; +struct ChatFullInfo; +struct ChatInviteLink; +struct ChatJoinRequest; +struct ChatLocation; +struct ChatMember; +struct ChatMemberAdministrator; +struct ChatMemberBanned; +struct ChatMemberLeft; +struct ChatMemberMember; +struct ChatMemberOwner; +struct ChatMemberRestricted; +struct ChatMemberUpdated; +struct ChatOwnerChanged; +struct ChatOwnerLeft; +struct ChatPermissions; +struct ChatPhoto; +struct ChatShared; +struct Checklist; +struct ChecklistTask; +struct ChecklistTasksAdded; +struct ChecklistTasksDone; +struct ChosenInlineResult; +struct Community; +struct CommunityChatAdded; +struct CommunityChatRemoved; +struct Contact; +struct CopyTextButton; +struct Dice; +struct DirectMessagePriceChanged; +struct DirectMessagesTopic; +struct Document; +struct EncryptedCredentials; +struct EncryptedPassportElement; +struct ExternalReplyInfo; +struct File; +struct ForceReply; +struct ForumTopic; +struct ForumTopicClosed; +struct ForumTopicCreated; +struct ForumTopicEdited; +struct ForumTopicReopened; +struct Game; +struct GameHighScore; +struct GeneralForumTopicHidden; +struct GeneralForumTopicUnhidden; +struct Gift; +struct GiftBackground; +struct GiftInfo; +struct Gifts; +struct Giveaway; +struct GiveawayCompleted; +struct GiveawayCreated; +struct GiveawayWinners; +struct InaccessibleMessage; +struct InlineKeyboardButton; +struct InlineKeyboardMarkup; +struct InlineQuery; +struct InlineQueryResult; +struct InlineQueryResultArticle; +struct InlineQueryResultAudio; +struct InlineQueryResultCachedAudio; +struct InlineQueryResultCachedDocument; +struct InlineQueryResultCachedGif; +struct InlineQueryResultCachedMpeg4Gif; +struct InlineQueryResultCachedPhoto; +struct InlineQueryResultCachedSticker; +struct InlineQueryResultCachedVideo; +struct InlineQueryResultCachedVoice; +struct InlineQueryResultContact; +struct InlineQueryResultDocument; +struct InlineQueryResultGame; +struct InlineQueryResultGif; +struct InlineQueryResultLocation; +struct InlineQueryResultMpeg4Gif; +struct InlineQueryResultPhoto; +struct InlineQueryResultVenue; +struct InlineQueryResultVideo; +struct InlineQueryResultVoice; +struct InlineQueryResultsButton; +struct InputChecklist; +struct InputChecklistTask; +struct InputContactMessageContent; +struct InputInvoiceMessageContent; +struct InputLocationMessageContent; +struct InputMedia; +struct InputMediaAnimation; +struct InputMediaAudio; +struct InputMediaDocument; +struct InputMediaLink; +struct InputMediaLivePhoto; +struct InputMediaLocation; +struct InputMediaPhoto; +struct InputMediaSticker; +struct InputMediaVenue; +struct InputMediaVideo; +struct InputMediaVoiceNote; +struct InputMessageContent; +struct InputPaidMedia; +struct InputPaidMediaLivePhoto; +struct InputPaidMediaPhoto; +struct InputPaidMediaVideo; +struct InputPollMedia; +struct InputPollOption; +struct InputPollOptionMedia; +struct InputProfilePhoto; +struct InputProfilePhotoAnimated; +struct InputProfilePhotoStatic; +struct InputRichBlock; +struct InputRichBlockAnchor; +struct InputRichBlockAnimation; +struct InputRichBlockAudio; +struct InputRichBlockBlockQuotation; +struct InputRichBlockCollage; +struct InputRichBlockDetails; +struct InputRichBlockDivider; +struct InputRichBlockFooter; +struct InputRichBlockList; +struct InputRichBlockListItem; +struct InputRichBlockMap; +struct InputRichBlockMathematicalExpression; +struct InputRichBlockParagraph; +struct InputRichBlockPhoto; +struct InputRichBlockPreformatted; +struct InputRichBlockPullQuotation; +struct InputRichBlockSectionHeading; +struct InputRichBlockSlideshow; +struct InputRichBlockTable; +struct InputRichBlockThinking; +struct InputRichBlockVideo; +struct InputRichBlockVoiceNote; +struct InputRichMessage; +struct InputRichMessageContent; +struct InputRichMessageMedia; +struct InputSticker; +struct InputStoryContent; +struct InputStoryContentPhoto; +struct InputStoryContentVideo; +struct InputTextMessageContent; +struct InputVenueMessageContent; +struct Invoice; +struct KeyboardButton; +struct KeyboardButtonPollType; +struct KeyboardButtonRequestChat; +struct KeyboardButtonRequestManagedBot; +struct KeyboardButtonRequestUsers; +struct LabeledPrice; +struct Link; +struct LinkPreviewOptions; +struct LivePhoto; +struct Location; +struct LocationAddress; +struct LoginUrl; +struct ManagedBotCreated; +struct ManagedBotUpdated; +struct MaskPosition; +struct MaybeInaccessibleMessage; +struct MenuButton; +struct MenuButtonCommands; +struct MenuButtonDefault; +struct MenuButtonWebApp; +struct Message; +struct MessageAutoDeleteTimerChanged; +struct MessageEntity; +struct MessageId; +struct MessageOrigin; +struct MessageOriginChannel; +struct MessageOriginChat; +struct MessageOriginHiddenUser; +struct MessageOriginUser; +struct MessageReactionCountUpdated; +struct MessageReactionUpdated; +struct OrderInfo; +struct OwnedGift; +struct OwnedGiftRegular; +struct OwnedGiftUnique; +struct OwnedGifts; +struct PaidMedia; +struct PaidMediaInfo; +struct PaidMediaLivePhoto; +struct PaidMediaPhoto; +struct PaidMediaPreview; +struct PaidMediaPurchased; +struct PaidMediaVideo; +struct PaidMessagePriceChanged; +struct PassportData; +struct PassportElementError; +struct PassportElementErrorDataField; +struct PassportElementErrorFile; +struct PassportElementErrorFiles; +struct PassportElementErrorFrontSide; +struct PassportElementErrorReverseSide; +struct PassportElementErrorSelfie; +struct PassportElementErrorTranslationFile; +struct PassportElementErrorTranslationFiles; +struct PassportElementErrorUnspecified; +struct PassportFile; +struct PhotoSize; +struct Poll; +struct PollAnswer; +struct PollMedia; +struct PollOption; +struct PollOptionAdded; +struct PollOptionDeleted; +struct PreCheckoutQuery; +struct PreparedInlineMessage; +struct PreparedKeyboardButton; +struct ProximityAlertTriggered; +struct ReactionCount; +struct ReactionType; +struct ReactionTypeCustomEmoji; +struct ReactionTypeEmoji; +struct ReactionTypePaid; +struct RefundedPayment; +struct ReplyKeyboardMarkup; +struct ReplyKeyboardRemove; +struct ReplyParameters; +struct ResponseParameters; +struct RevenueWithdrawalState; +struct RevenueWithdrawalStateFailed; +struct RevenueWithdrawalStatePending; +struct RevenueWithdrawalStateSucceeded; +struct RichBlock; +struct RichBlockAnchor; +struct RichBlockAnimation; +struct RichBlockAudio; +struct RichBlockBlockQuotation; +struct RichBlockCaption; +struct RichBlockCollage; +struct RichBlockDetails; +struct RichBlockDivider; +struct RichBlockFooter; +struct RichBlockList; +struct RichBlockListItem; +struct RichBlockMap; +struct RichBlockMathematicalExpression; +struct RichBlockParagraph; +struct RichBlockPhoto; +struct RichBlockPreformatted; +struct RichBlockPullQuotation; +struct RichBlockSectionHeading; +struct RichBlockSlideshow; +struct RichBlockTable; +struct RichBlockTableCell; +struct RichBlockThinking; +struct RichBlockVideo; +struct RichBlockVoiceNote; +struct RichMessage; +struct RichText; +struct RichTextAnchor; +struct RichTextAnchorLink; +struct RichTextBankCardNumber; +struct RichTextBold; +struct RichTextBotCommand; +struct RichTextCashtag; +struct RichTextCode; +struct RichTextCustomEmoji; +struct RichTextDateTime; +struct RichTextEmailAddress; +struct RichTextHashtag; +struct RichTextItalic; +struct RichTextMarked; +struct RichTextMathematicalExpression; +struct RichTextMention; +struct RichTextPhoneNumber; +struct RichTextReference; +struct RichTextReferenceLink; +struct RichTextSpoiler; +struct RichTextStrikethrough; +struct RichTextSubscript; +struct RichTextSuperscript; +struct RichTextTextMention; +struct RichTextUnderline; +struct RichTextUrl; +struct SentGuestMessage; +struct SentWebAppMessage; +struct SharedUser; +struct ShippingAddress; +struct ShippingOption; +struct ShippingQuery; +struct StarAmount; +struct StarTransaction; +struct StarTransactions; +struct Sticker; +struct StickerSet; +struct Story; +struct StoryArea; +struct StoryAreaPosition; +struct StoryAreaType; +struct StoryAreaTypeLink; +struct StoryAreaTypeLocation; +struct StoryAreaTypeSuggestedReaction; +struct StoryAreaTypeUniqueGift; +struct StoryAreaTypeWeather; +struct SuccessfulPayment; +struct SuggestedPostApprovalFailed; +struct SuggestedPostApproved; +struct SuggestedPostDeclined; +struct SuggestedPostInfo; +struct SuggestedPostPaid; +struct SuggestedPostParameters; +struct SuggestedPostPrice; +struct SuggestedPostRefunded; +struct SwitchInlineQueryChosenChat; +struct TextQuote; +struct TransactionPartner; +struct TransactionPartnerAffiliateProgram; +struct TransactionPartnerChat; +struct TransactionPartnerFragment; +struct TransactionPartnerOther; +struct TransactionPartnerTelegramAds; +struct TransactionPartnerTelegramApi; +struct TransactionPartnerUser; +struct UniqueGift; +struct UniqueGiftBackdrop; +struct UniqueGiftBackdropColors; +struct UniqueGiftColors; +struct UniqueGiftInfo; +struct UniqueGiftModel; +struct UniqueGiftSymbol; +struct Update; +struct User; +struct UserChatBoosts; +struct UserProfileAudios; +struct UserProfilePhotos; +struct UserRating; +struct UsersShared; +struct Venue; +struct Video; +struct VideoChatEnded; +struct VideoChatParticipantsInvited; +struct VideoChatScheduled; +struct VideoChatStarted; +struct VideoNote; +struct VideoQuality; +struct Voice; +struct WebAppData; +struct WebAppInfo; +struct WebhookInfo; +struct WriteAccessAllowed; + +/** + * @brief This object describes the types of gifts that can be gifted to a user or a chat. + */ +struct AcceptedGiftTypes { + using Ptr = std::shared_ptr; + + /** + * @brief True, if unlimited regular gifts are accepted + */ + bool unlimitedGifts { }; + + /** + * @brief True, if limited regular gifts are accepted + */ + bool limitedGifts { }; + + /** + * @brief True, if unique gifts or gifts that can be upgraded to unique for free are accepted + */ + bool uniqueGifts { }; + + /** + * @brief True, if a Telegram Premium subscription is accepted + */ + bool premiumSubscription { }; + + /** + * @brief True, if transfers of unique gifts from channels are accepted + */ + bool giftsFromChannels { }; +}; + +TGBOT_API void from_json(const nlohmann::json& json, AcceptedGiftTypes& value); +TGBOT_API void to_json(nlohmann::json& json, const AcceptedGiftTypes& value); + +/** + * @brief Contains information about the affiliate that received a commission via this transaction. + */ +struct AffiliateInfo { + using Ptr = std::shared_ptr; + + /** + * @brief Optional. The bot or the user that received an affiliate commission if it was received + * by a bot or a user + */ + std::shared_ptr affiliateUser { }; + + /** + * @brief Optional. The chat that received an affiliate commission if it was received by a chat + */ + std::shared_ptr affiliateChat { }; + + /** + * @brief The number of Telegram Stars received by the affiliate for each 1000 Telegram Stars + * received by the bot from referred users + */ + std::int32_t commissionPerMille { }; + + /** + * @brief Integer amount of Telegram Stars received by the affiliate from the transaction, rounded + * to 0; can be negative for refunds + */ + std::int32_t amount { }; + + /** + * @brief Optional. The number of 1/1000000000 shares of Telegram Stars received by the affiliate; + * from -999999999 to 999999999; can be negative for refunds + */ + std::optional nanostarAmount { }; +}; + +TGBOT_API void from_json(const nlohmann::json& json, AffiliateInfo& value); +TGBOT_API void to_json(nlohmann::json& json, const AffiliateInfo& value); + +/** + * @brief This object represents an animation file (GIF or H.264/MPEG-4 AVC video without sound). + */ +struct Animation { + using Ptr = std::shared_ptr; + + /** + * @brief Identifier for this file, which can be used to download or reuse the file + */ + std::string fileId { }; + + /** + * @brief Unique identifier for this file, which is supposed to be the same over time and for + * different bots. Can't be used to download or reuse the file. + */ + std::string fileUniqueId { }; + + /** + * @brief Video width as defined by the sender + */ + std::int32_t width { }; + + /** + * @brief Video height as defined by the sender + */ + std::int32_t height { }; + + /** + * @brief Duration of the video in seconds as defined by the sender + */ + std::int32_t duration { }; + + /** + * @brief Optional. Animation thumbnail as defined by the sender + */ + std::shared_ptr thumbnail { }; + + /** + * @brief Optional. Original animation filename as defined by the sender + */ + std::optional fileName { }; + + /** + * @brief Optional. MIME type of the file as defined by the sender + */ + std::optional mimeType { }; + + /** + * @brief Optional. File size in bytes. It can be bigger than 2^31 and some programming languages + * may have difficulty/silent defects in interpreting it. But it has at most 52 significant + * bits, so a signed 64-bit integer or double-precision float type are safe for storing + * this value. + */ + std::optional fileSize { }; +}; + +TGBOT_API void from_json(const nlohmann::json& json, Animation& value); +TGBOT_API void to_json(nlohmann::json& json, const Animation& value); + +/** + * @brief This object represents an audio file to be treated as music by the Telegram clients. + */ +struct Audio { + using Ptr = std::shared_ptr