Expand description
This module contains telegram types from the Telegram Bot API. Each type has a description and a link to the official documentation.
Telegram types are represented as Rust structs, if a field:
- is optional, it will be wrapped in
Option
, - is an array, it will be wrapped in
Vec
or slice wrapped inBox
, - is a recursive type, it will be wrapped in
Box
. - is a tagged union, it will be wrapped in
enum
with variants named as in the documentation, - is a type with optional fields, it can be represented as an enum with variants for specific cases (check
Message
for example). - is a string, it will be represented as
String
orstr
wrapped inBox
, - is a number, it will be represented as
i64
oru16
if it’s UTF-16 code unit, - is a float, it will be represented as
f64
, - is a boolean, it will be represented as
bool
, - is a file, it will be represented as
InputFile
, - is a chat id with kind (integer or string), it will be represented as
ChatIdKind
, - is a date, it will be represented as
i64
(unix timestamp).
Tagged unions are represented as enums with variants named as in the documentation
and we implement From
trait for them to make it easier to convert from them to the enum.
For example, BotCommandScope
is represented as enum with variants:
BotCommandScopeDefault
BotCommandScopeAllPrivateChats
BotCommandScopeAllGroupChats
BotCommandScopeAllChatAdministrators
BotCommandScopeChat
BotCommandScopeChatAdministrators
BotCommandScopeChatMember
Each variant has an implementation ofFrom
trait to convert from the variant to theBotCommandScope
, so you can writefrom
andinto
to convert between them instead of boilerplate code. Many methods in the library accept “union” and tagged types as generic parameters withInto
trait bounds, so you can pass any of the variants to them.
The telegram type with optional fields can be represented as an enum with variants for specific cases.
For example, Message
is represented as enum with variants:
MessageText
MessageAnimation
and so on… (seeMessage
for full list of variants). Each variant has an implementation ofInto
trait to convert from the variant to theMessage
.
Re-exports§
pub use animation::Animation;
pub use audio::Audio;
pub use background_fill::BackgroundFill;
pub use background_fill_freeform_gradient::BackgroundFillFreeformGradient;
pub use background_fill_gradient::BackgroundFillGradient;
pub use background_fill_solid::BackgroundFillSolid;
pub use background_type::BackgroundType;
pub use background_type_chat_theme::BackgroundTypeChatTheme;
pub use background_type_fill::BackgroundTypeFill;
pub use background_type_pattern::BackgroundTypePattern;
pub use background_type_wallpaper::BackgroundTypeWallpaper;
pub use birthdate::Birthdate;
pub use bot_command::BotCommand;
pub use bot_command_scope::BotCommandScope;
pub use bot_command_scope_all_chat_administrators::BotCommandScopeAllChatAdministrators;
pub use bot_command_scope_all_group_chats::BotCommandScopeAllGroupChats;
pub use bot_command_scope_all_private_chats::BotCommandScopeAllPrivateChats;
pub use bot_command_scope_chat::BotCommandScopeChat;
pub use bot_command_scope_chat_administrators::BotCommandScopeChatAdministrators;
pub use bot_command_scope_chat_member::BotCommandScopeChatMember;
pub use bot_command_scope_default::BotCommandScopeDefault;
pub use bot_description::BotDescription;
pub use bot_name::BotName;
pub use bot_short_description::BotShortDescription;
pub use business_connection::BusinessConnection;
pub use business_intro::BusinessIntro;
pub use business_location::BusinessLocation;
pub use business_messages_deleted::BusinessMessagesDeleted;
pub use business_opening_hours::BusinessOpeningHours;
pub use business_opening_hours_interval::BusinessOpeningHoursInterval;
pub use callback_game::CallbackGame;
pub use callback_query::CallbackQuery;
pub use chat::Channel;
pub use chat::Chat;
pub use chat::Group;
pub use chat::Private;
pub use chat::Supergroup;
pub use chat_administrator_rights::ChatAdministratorRights;
pub use chat_background::ChatBackground;
pub use chat_boost::ChatBoost;
pub use chat_boost_added::ChatBoostAdded;
pub use chat_boost_removed::ChatBoostRemoved;
pub use chat_boost_source::ChatBoostSource;
pub use chat_boost_source_gift_code::ChatBoostSourceGiftCode;
pub use chat_boost_source_giveaway::ChatBoostSourceGiveaway;
pub use chat_boost_source_premium::ChatBoostSourcePremium;
pub use chat_boost_updated::ChatBoostUpdated;
pub use chat_full_info::ChannelFullInfo;
pub use chat_full_info::ChatFullInfo;
pub use chat_full_info::GroupFullInfo;
pub use chat_full_info::PrivateFullInfo;
pub use chat_full_info::SupergroupFullInfo;
pub use chat_id_kind::ChatIdKind;
pub use chat_invite_link::ChatInviteLink;
pub use chat_join_request::ChatJoinRequest;
pub use chat_location::ChatLocation;
pub use chat_member::ChatMember;
pub use chat_member_administrator::ChatMemberAdministrator;
pub use chat_member_banned::ChatMemberBanned;
pub use chat_member_left::ChatMemberLeft;
pub use chat_member_member::ChatMemberMember;
pub use chat_member_owner::ChatMemberOwner;
pub use chat_member_restricted::ChatMemberRestricted;
pub use chat_member_updated::ChatMemberUpdated;
pub use chat_permissions::ChatPermissions;
pub use chat_photo::ChatPhoto;
pub use chosen_inline_result::ChosenInlineResult;
pub use contact::Contact;
pub use dice::Dice;
pub use document::Document;
pub use encrypted_credentials::EncryptedCredentials;
pub use encrypted_passport_element::Address as EncryptedPassportElementAddress;
pub use encrypted_passport_element::BankStatement as EncryptedPassportElementBankStatement;
pub use encrypted_passport_element::DriverLicense as EncryptedPassportElementDriverLicense;
pub use encrypted_passport_element::Email as EncryptedPassportElementEmail;
pub use encrypted_passport_element::EncryptedPassportElement;
pub use encrypted_passport_element::IdentityCard as EncryptedPassportElementIdentityCard;
pub use encrypted_passport_element::InternalPassport as EncryptedPassportElementInternalPassport;
pub use encrypted_passport_element::Passport as EncryptedPassportElementPassport;
pub use encrypted_passport_element::PassportRegistration as EncryptedPassportElementPassportRegistration;
pub use encrypted_passport_element::PersonalDetails as EncryptedPassportElementPersonalDetails;
pub use encrypted_passport_element::PhoneNumber as EncryptedPassportElementPhoneNumber;
pub use encrypted_passport_element::RentalAgreement as EncryptedPassportElementRentalAgreement;
pub use encrypted_passport_element::TemporaryRegistration as EncryptedPassportElementTemporaryRegistration;
pub use encrypted_passport_element::UtilityBill as EncryptedPassportElementUtilityBill;
pub use external_reply_info::Animation as ExternalReplyInfoAnimation;
pub use external_reply_info::Audio as ExternalReplyInfoAudio;
pub use external_reply_info::Contact as ExternalReplyInfoContact;
pub use external_reply_info::Dice as ExternalReplyInfoDice;
pub use external_reply_info::Document as ExternalReplyInfoDocument;
pub use external_reply_info::ExternalReplyInfo;
pub use external_reply_info::Game as ExternalReplyInfoGame;
pub use external_reply_info::Giveaway as ExternalReplyInfoGiveaway;
pub use external_reply_info::GiveawayWinners as ExternalReplyInfoGiveawayWinners;
pub use external_reply_info::Invoice as ExternalReplyInfoInvoice;
pub use external_reply_info::Location as ExternalReplyInfoLocation;
pub use external_reply_info::Photo as ExternalReplyInfoPhoto;
pub use external_reply_info::Poll as ExternalReplyInfoPoll;
pub use external_reply_info::Sticker as ExternalReplyInfoSticker;
pub use external_reply_info::Story as ExternalReplyInfoStory;
pub use external_reply_info::Venue as ExternalReplyInfoVenue;
pub use external_reply_info::Video as ExternalReplyInfoVideo;
pub use external_reply_info::VideoNote as ExternalReplyInfoVideoNote;
pub use external_reply_info::Voice as ExternalReplyInfoVoice;
pub use file::File;
pub use force_reply::ForceReply;
pub use forum_topic::ForumTopic;
pub use forum_topic_closed::ForumTopicClosed;
pub use forum_topic_created::ForumTopicCreated;
pub use forum_topic_edited::ForumTopicEdited;
pub use forum_topic_reopened::ForumTopicReopened;
pub use game::Game;
pub use game_high_score::GameHighScore;
pub use general_forum_topic_hidden::GeneralForumTopicHidden;
pub use giveaway::Giveaway;
pub use giveaway_completed::GiveawayCompleted;
pub use giveaway_created::GiveawayCreated;
pub use giveaway_winners::GiveawayWinners;
pub use inaccessible_message::InaccessibleMessage;
pub use inline_keyboard_button::InlineKeyboardButton;
pub use inline_keyboard_markup::InlineKeyboardMarkup;
pub use inline_query::InlineQuery;
pub use inline_query_result::InlineQueryResult;
pub use inline_query_result_article::InlineQueryResultArticle;
pub use inline_query_result_audio::InlineQueryResultAudio;
pub use inline_query_result_cached_audio::InlineQueryResultCachedAudio;
pub use inline_query_result_cached_document::InlineQueryResultCachedDocument;
pub use inline_query_result_cached_gif::InlineQueryResultCachedGif;
pub use inline_query_result_cached_mpeg4_gif::InlineQueryResultCachedMpeg4Gif;
pub use inline_query_result_cached_photo::InlineQueryResultCachedPhoto;
pub use inline_query_result_cached_sticker::InlineQueryResultCachedSticker;
pub use inline_query_result_cached_video::InlineQueryResultCachedVideo;
pub use inline_query_result_cached_voice::InlineQueryResultCachedVoice;
pub use inline_query_result_contact::InlineQueryResultContact;
pub use inline_query_result_document::InlineQueryResultDocument;
pub use inline_query_result_game::InlineQueryResultGame;
pub use inline_query_result_gif::InlineQueryResultGif;
pub use inline_query_result_location::InlineQueryResultLocation;
pub use inline_query_result_mpeg4_gif::InlineQueryResultMpeg4Gif;
pub use inline_query_result_photo::InlineQueryResultPhoto;
pub use inline_query_result_venue::InlineQueryResultVenue;
pub use inline_query_result_video::InlineQueryResultVideo;
pub use inline_query_result_voice::InlineQueryResultVoice;
pub use inline_query_results_button::InlineQueryResultsButton;
pub use input_contact_message_content::InputContactMessageContent;
pub use input_file::BufferedFile as InputBufferedFile;
pub use input_file::FSFile as InputFSFile;
pub use input_file::FileId as InputFileId;
pub use input_file::InputFile;
pub use input_file::StreamFile as InputStreamFile;
pub use input_file::UrlFile as InputUrlFile;
pub use input_invoice_message_content::InputInvoiceMessageContent;
pub use input_location_message_content::InputLocationMessageContent;
pub use input_media::InputMedia;
pub use input_media_animation::InputMediaAnimation;
pub use input_media_audio::InputMediaAudio;
pub use input_media_document::InputMediaDocument;
pub use input_media_photo::InputMediaPhoto;
pub use input_media_video::InputMediaVideo;
pub use input_message_content::InputMessageContent;
pub use input_poll_option::InputPollOption;
pub use input_sticker::InputSticker;
pub use input_text_message_content::InputTextMessageContent;
pub use input_venue_message_content::InputVenueMessageContent;
pub use invoice::Invoice;
pub use keyboard_button::KeyboardButton;
pub use keyboard_button_poll_type::KeyboardButtonPollType;
pub use keyboard_button_request_chat::KeyboardButtonRequestChat;
pub use keyboard_button_request_users::KeyboardButtonRequestUsers;
pub use labeled_price::LabeledPrice;
pub use link_preview_options::LinkPreviewOptions;
pub use location::Location;
pub use login_url::LoginUrl;
pub use mask_position::MaskPosition;
pub use maybe_inaccessible_message::MaybeInaccessibleMessage;
pub use menu_button::MenuButton;
pub use menu_button_commands::MenuButtonCommands;
pub use menu_button_default::MenuButtonDefault;
pub use menu_button_web_app::MenuButtonWebApp;
pub use message::Animation as MessageAnimation;
pub use message::Audio as MessageAudio;
pub use message::ChannelChatCreated as MessageChannelChatCreated;
pub use message::ConnectedWebsite as MessageConnectedWebsite;
pub use message::Contact as MessageContact;
pub use message::DeleteChatPhoto as MessageDeleteChatPhoto;
pub use message::Dice as MessageDice;
pub use message::Document as MessageDocument;
pub use message::ForumTopicClosed as MessageForumTopicClosed;
pub use message::ForumTopicCreated as MessageForumTopicCreated;
pub use message::ForumTopicEdited as MessageForumTopicEdited;
pub use message::ForumTopicReopened as MessageForumTopicReopened;
pub use message::Game as MessageGame;
pub use message::GeneralForumTopicHidden as MessageGeneralForumTopicHidden;
pub use message::Giveaway as MessageGiveaway;
pub use message::GiveawayCompleted as MessageGiveawayCompleted;
pub use message::GiveawayCreated as MessageGiveawayCreated;
pub use message::GiveawayWinners as MessageGiveawayWinners;
pub use message::GroupChatCreated as MessageGroupChatCreated;
pub use message::Invoice as MessageInvoice;
pub use message::LeftChatMember as MessageLeftChatMember;
pub use message::Location as MessageLocation;
pub use message::Message;
pub use message::MessageAutoDeleteTimerChanged as MessageMessageAutoDeleteTimerChanged;
pub use message::MigrateFromChat as MessageMigrateFromChat;
pub use message::MigrateToChat as MessageMigrateToChat;
pub use message::NewChatMembers as MessageNewChatMembers;
pub use message::NewChatPhoto as MessageNewChatPhoto;
pub use message::NewChatTitle as MessageNewChatTitle;
pub use message::PassportData as MessagePassportData;
pub use message::Photo as MessagePhoto;
pub use message::Pinned as MessagePinned;
pub use message::Poll as MessagePoll;
pub use message::ProximityAlertTriggered as MessageProximityAlertTriggered;
pub use message::Sticker as MessageSticker;
pub use message::Story as MessageStory;
pub use message::SuccessfulPayment as MessageSuccessfulPayment;
pub use message::SupergroupChatCreated as MessageSupergroupChatCreated;
pub use message::Text as MessageText;
pub use message::Venue as MessageVenue;
pub use message::Video as MessageVideo;
pub use message::VideoChatEnded as MessageVideoChatEnded;
pub use message::VideoChatParticipantsInvited as MessageVideoChatParticipantsInvited;
pub use message::VideoChatScheduled as MessageVideoChatScheduled;
pub use message::VideoChatStarted as MessageVideoChatStarted;
pub use message::VideoNote as MessageVideoNote;
pub use message::Voice as MessageVoice;
pub use message::WebAppData as MessageWebAppData;
pub use message::WriteAccessAllowed as MessageWriteAccessAllowed;
pub use message_auto_delete_timer_changed::MessageAutoDeleteTimerChanged;
pub use message_entity::CustomEmoji as CustomEmojiMessageEntity;
pub use message_entity::Kind as MessageEntityKind;
pub use message_entity::MessageEntity;
pub use message_entity::Pre as PreMessageEntity;
pub use message_entity::TextLink as TextLinkMessageEntity;
pub use message_entity::TextMention as TextMentionMessageEntity;
pub use message_id::MessageId;
pub use message_or_true::MessageOrTrue;
pub use message_origin::MessageOrigin;
pub use message_origin_channel::MessageOriginChannel;
pub use message_origin_chat::MessageOriginChat;
pub use message_origin_hidden_user::MessageOriginHiddenUser;
pub use message_origin_user::MessageOriginUser;
pub use message_reaction_count_updated::MessageReactionCountUpdated;
pub use message_reaction_updated::MessageReactionUpdated;
pub use order_info::OrderInfo;
pub use passport_data::PassportData;
pub use passport_element_error::PassportElementError;
pub use passport_element_error_data_field::ElementType as PassportElementErrorDataFieldType;
pub use passport_element_error_data_field::PassportElementErrorDataField;
pub use passport_element_error_file::ElementType as PassportElementErrorFileType;
pub use passport_element_error_file::PassportElementErrorFile;
pub use passport_element_error_files::ElementType as PassportElementErrorFilesType;
pub use passport_element_error_files::PassportElementErrorFiles;
pub use passport_element_error_front_side::ElementType as PassportElementErrorFrontSideType;
pub use passport_element_error_front_side::PassportElementErrorFrontSide;
pub use passport_element_error_reverse_side::ElementType as PassportElementErrorReverseSideType;
pub use passport_element_error_reverse_side::PassportElementErrorReverseSide;
pub use passport_element_error_selfie::ElementType as PassportElementErrorSelfieType;
pub use passport_element_error_selfie::PassportElementErrorSelfie;
pub use passport_element_error_translation_file::ElementType as PassportElementErrorTranslationFileType;
pub use passport_element_error_translation_file::PassportElementErrorTranslationFile;
pub use passport_element_error_translation_files::ElementType as PassportElementErrorTranslationFilesType;
pub use passport_element_error_translation_files::PassportElementErrorTranslationFiles;
pub use passport_element_error_unspecified::PassportElementErrorUnspecified;
pub use passport_file::PassportFile;
pub use photo_size::PhotoSize;
pub use poll::Poll;
pub use poll::Quiz as PollQuiz;
pub use poll::Regular as PollRegular;
pub use poll_answer::PollAnswer;
pub use poll_option::PollOption;
pub use pre_checkout_query::PreCheckoutQuery;
pub use proximity_alert_triggered::ProximityAlertTriggered;
pub use reaction_count::ReactionCount;
pub use reaction_type::ReactionType;
pub use reaction_type_custom_emoji::ReactionTypeCustomEmoji;
pub use reaction_type_emoji::ReactionTypeEmoji;
pub use reply_keyboard_markup::ReplyKeyboardMarkup;
pub use reply_keyboard_remove::ReplyKeyboardRemove;
pub use reply_markup::ReplyMarkup;
pub use reply_parameters::ReplyParameters;
pub use response_parameters::ResponseParameters;
pub use sent_web_app_message::SentWebAppMessage;
pub use shipping_address::ShippingAddress;
pub use shipping_option::ShippingOption;
pub use shipping_query::ShippingQuery;
pub use sticker::Sticker;
pub use sticker_set::StickerSet;
pub use story::Story;
pub use successful_payment::SuccessfulPayment;
pub use switch_inline_query_chosen_chat::SwitchInlineQueryChosenChat;
pub use text_quote::TextQuote;
pub use update::Kind as UpdateKind;
pub use update::Update;
pub use user::User;
pub use user_chat_boosts::UserChatBoosts;
pub use user_profile_photos::UserProfilePhotos;
pub use venue::Venue;
pub use video::Video;
pub use video_chat_ended::VideoChatEnded;
pub use video_chat_participants_invited::VideoChatParticipantsInvited;
pub use video_chat_scheduled::VideoChatScheduled;
pub use video_chat_started::VideoChatStarted;
pub use video_note::VideoNote;
pub use voice::Voice;
pub use web_app_data::WebAppData;
pub use web_app_info::WebAppInfo;
pub use web_app_user::WebAppUser;
pub use webhook_info::WebhookInfo;
pub use write_access_allowed::WriteAccessAllowed;