logo
pub trait Requester {
Show 197 associated items type Err: Error + Send; type GetUpdates: Request<Payload = GetUpdates, Err = Self::Err>; type SetWebhook: Request<Payload = SetWebhook, Err = Self::Err>; type DeleteWebhook: Request<Payload = DeleteWebhook, Err = Self::Err>; type GetWebhookInfo: Request<Payload = GetWebhookInfo, Err = Self::Err>; type GetMe: Request<Payload = GetMe, Err = Self::Err>; type LogOut: Request<Payload = LogOut, Err = Self::Err>; type Close: Request<Payload = Close, Err = Self::Err>; type SendMessage: Request<Payload = SendMessage, Err = Self::Err>; type ForwardMessage: Request<Payload = ForwardMessage, Err = Self::Err>; type CopyMessage: Request<Payload = CopyMessage, Err = Self::Err>; type SendPhoto: Request<Payload = SendPhoto, Err = Self::Err>; type SendAudio: Request<Payload = SendAudio, Err = Self::Err>; type SendDocument: Request<Payload = SendDocument, Err = Self::Err>; type SendVideo: Request<Payload = SendVideo, Err = Self::Err>; type SendAnimation: Request<Payload = SendAnimation, Err = Self::Err>; type SendVoice: Request<Payload = SendVoice, Err = Self::Err>; type SendVideoNote: Request<Payload = SendVideoNote, Err = Self::Err>; type SendMediaGroup: Request<Payload = SendMediaGroup, Err = Self::Err>; type SendLocation: Request<Payload = SendLocation, Err = Self::Err>; type EditMessageLiveLocation: Request<Payload = EditMessageLiveLocation, Err = Self::Err>; type EditMessageLiveLocationInline: Request<Payload = EditMessageLiveLocationInline, Err = Self::Err>; type StopMessageLiveLocation: Request<Payload = StopMessageLiveLocation, Err = Self::Err>; type StopMessageLiveLocationInline: Request<Payload = StopMessageLiveLocationInline, Err = Self::Err>; type SendVenue: Request<Payload = SendVenue, Err = Self::Err>; type SendContact: Request<Payload = SendContact, Err = Self::Err>; type SendPoll: Request<Payload = SendPoll, Err = Self::Err>; type SendDice: Request<Payload = SendDice, Err = Self::Err>; type SendChatAction: Request<Payload = SendChatAction, Err = Self::Err>; type GetUserProfilePhotos: Request<Payload = GetUserProfilePhotos, Err = Self::Err>; type GetFile: Request<Payload = GetFile, Err = Self::Err>; type BanChatMember: Request<Payload = BanChatMember, Err = Self::Err>; type KickChatMember: Request<Payload = KickChatMember, Err = Self::Err>; type UnbanChatMember: Request<Payload = UnbanChatMember, Err = Self::Err>; type RestrictChatMember: Request<Payload = RestrictChatMember, Err = Self::Err>; type PromoteChatMember: Request<Payload = PromoteChatMember, Err = Self::Err>; type SetChatAdministratorCustomTitle: Request<Payload = SetChatAdministratorCustomTitle, Err = Self::Err>; type BanChatSenderChat: Request<Payload = BanChatSenderChat, Err = Self::Err>; type UnbanChatSenderChat: Request<Payload = UnbanChatSenderChat, Err = Self::Err>; type SetChatPermissions: Request<Payload = SetChatPermissions, Err = Self::Err>; type ExportChatInviteLink: Request<Payload = ExportChatInviteLink, Err = Self::Err>; type CreateChatInviteLink: Request<Payload = CreateChatInviteLink, Err = Self::Err>; type EditChatInviteLink: Request<Payload = EditChatInviteLink, Err = Self::Err>; type RevokeChatInviteLink: Request<Payload = RevokeChatInviteLink, Err = Self::Err>; type ApproveChatJoinRequest: Request<Payload = ApproveChatJoinRequest, Err = Self::Err>; type DeclineChatJoinRequest: Request<Payload = DeclineChatJoinRequest, Err = Self::Err>; type SetChatPhoto: Request<Payload = SetChatPhoto, Err = Self::Err>; type DeleteChatPhoto: Request<Payload = DeleteChatPhoto, Err = Self::Err>; type SetChatTitle: Request<Payload = SetChatTitle, Err = Self::Err>; type SetChatDescription: Request<Payload = SetChatDescription, Err = Self::Err>; type PinChatMessage: Request<Payload = PinChatMessage, Err = Self::Err>; type UnpinChatMessage: Request<Payload = UnpinChatMessage, Err = Self::Err>; type UnpinAllChatMessages: Request<Payload = UnpinAllChatMessages, Err = Self::Err>; type LeaveChat: Request<Payload = LeaveChat, Err = Self::Err>; type GetChat: Request<Payload = GetChat, Err = Self::Err>; type GetChatAdministrators: Request<Payload = GetChatAdministrators, Err = Self::Err>; type GetChatMemberCount: Request<Payload = GetChatMemberCount, Err = Self::Err>; type GetChatMembersCount: Request<Payload = GetChatMembersCount, Err = Self::Err>; type GetChatMember: Request<Payload = GetChatMember, Err = Self::Err>; type SetChatStickerSet: Request<Payload = SetChatStickerSet, Err = Self::Err>; type DeleteChatStickerSet: Request<Payload = DeleteChatStickerSet, Err = Self::Err>; type AnswerCallbackQuery: Request<Payload = AnswerCallbackQuery, Err = Self::Err>; type SetMyCommands: Request<Payload = SetMyCommands, Err = Self::Err>; type GetMyCommands: Request<Payload = GetMyCommands, Err = Self::Err>; type SetChatMenuButton: Request<Payload = SetChatMenuButton, Err = Self::Err>; type GetChatMenuButton: Request<Payload = GetChatMenuButton, Err = Self::Err>; type SetMyDefaultAdministratorRights: Request<Payload = SetMyDefaultAdministratorRights, Err = Self::Err>; type GetMyDefaultAdministratorRights: Request<Payload = GetMyDefaultAdministratorRights, Err = Self::Err>; type DeleteMyCommands: Request<Payload = DeleteMyCommands, Err = Self::Err>; type AnswerInlineQuery: Request<Payload = AnswerInlineQuery, Err = Self::Err>; type AnswerWebAppQuery: Request<Payload = AnswerWebAppQuery, Err = Self::Err>; type EditMessageText: Request<Payload = EditMessageText, Err = Self::Err>; type EditMessageTextInline: Request<Payload = EditMessageTextInline, Err = Self::Err>; type EditMessageCaption: Request<Payload = EditMessageCaption, Err = Self::Err>; type EditMessageCaptionInline: Request<Payload = EditMessageCaptionInline, Err = Self::Err>; type EditMessageMedia: Request<Payload = EditMessageMedia, Err = Self::Err>; type EditMessageMediaInline: Request<Payload = EditMessageMediaInline, Err = Self::Err>; type EditMessageReplyMarkup: Request<Payload = EditMessageReplyMarkup, Err = Self::Err>; type EditMessageReplyMarkupInline: Request<Payload = EditMessageReplyMarkupInline, Err = Self::Err>; type StopPoll: Request<Payload = StopPoll, Err = Self::Err>; type DeleteMessage: Request<Payload = DeleteMessage, Err = Self::Err>; type SendSticker: Request<Payload = SendSticker, Err = Self::Err>; type GetStickerSet: Request<Payload = GetStickerSet, Err = Self::Err>; type GetCustomEmojiStickers: Request<Payload = GetCustomEmojiStickers, Err = Self::Err>; type UploadStickerFile: Request<Payload = UploadStickerFile, Err = Self::Err>; type CreateNewStickerSet: Request<Payload = CreateNewStickerSet, Err = Self::Err>; type AddStickerToSet: Request<Payload = AddStickerToSet, Err = Self::Err>; type SetStickerPositionInSet: Request<Payload = SetStickerPositionInSet, Err = Self::Err>; type DeleteStickerFromSet: Request<Payload = DeleteStickerFromSet, Err = Self::Err>; type SetStickerSetThumb: Request<Payload = SetStickerSetThumb, Err = Self::Err>; type SendInvoice: Request<Payload = SendInvoice, Err = Self::Err>; type CreateInvoiceLink: Request<Payload = CreateInvoiceLink, Err = Self::Err>; type AnswerShippingQuery: Request<Payload = AnswerShippingQuery, Err = Self::Err>; type AnswerPreCheckoutQuery: Request<Payload = AnswerPreCheckoutQuery, Err = Self::Err>; type SetPassportDataErrors: Request<Payload = SetPassportDataErrors, Err = Self::Err>; type SendGame: Request<Payload = SendGame, Err = Self::Err>; type SetGameScore: Request<Payload = SetGameScore, Err = Self::Err>; type SetGameScoreInline: Request<Payload = SetGameScoreInline, Err = Self::Err>; type GetGameHighScores: Request<Payload = GetGameHighScores, Err = Self::Err>; fn get_updates(&self) -> Self::GetUpdates; fn set_webhook(&self, url: Url) -> Self::SetWebhook; fn delete_webhook(&self) -> Self::DeleteWebhook; fn get_webhook_info(&self) -> Self::GetWebhookInfo; fn get_me(&self) -> Self::GetMe; fn log_out(&self) -> Self::LogOut; fn close(&self) -> Self::Close; fn send_message<C, T>(&self, chat_id: C, text: T) -> Self::SendMessage
    where
        C: Into<Recipient>,
        T: Into<String>
; fn forward_message<C, F>(
        &self,
        chat_id: C,
        from_chat_id: F,
        message_id: MessageId
    ) -> Self::ForwardMessage
    where
        C: Into<Recipient>,
        F: Into<Recipient>
; fn copy_message<C, F>(
        &self,
        chat_id: C,
        from_chat_id: F,
        message_id: MessageId
    ) -> Self::CopyMessage
    where
        C: Into<Recipient>,
        F: Into<Recipient>
; fn send_photo<C>(&self, chat_id: C, photo: InputFile) -> Self::SendPhoto
    where
        C: Into<Recipient>
; fn send_audio<C>(&self, chat_id: C, audio: InputFile) -> Self::SendAudio
    where
        C: Into<Recipient>
; fn send_document<C>(
        &self,
        chat_id: C,
        document: InputFile
    ) -> Self::SendDocument
    where
        C: Into<Recipient>
; fn send_video<C>(&self, chat_id: C, video: InputFile) -> Self::SendVideo
    where
        C: Into<Recipient>
; fn send_animation<C>(
        &self,
        chat_id: C,
        animation: InputFile
    ) -> Self::SendAnimation
    where
        C: Into<Recipient>
; fn send_voice<C>(&self, chat_id: C, voice: InputFile) -> Self::SendVoice
    where
        C: Into<Recipient>
; fn send_video_note<C>(
        &self,
        chat_id: C,
        video_note: InputFile
    ) -> Self::SendVideoNote
    where
        C: Into<Recipient>
; fn send_media_group<C, M>(&self, chat_id: C, media: M) -> Self::SendMediaGroup
    where
        C: Into<Recipient>,
        M: IntoIterator<Item = InputMedia>
; fn send_location<C>(
        &self,
        chat_id: C,
        latitude: f64,
        longitude: f64
    ) -> Self::SendLocation
    where
        C: Into<Recipient>
; fn edit_message_live_location<C>(
        &self,
        chat_id: C,
        message_id: MessageId,
        latitude: f64,
        longitude: f64
    ) -> Self::EditMessageLiveLocation
    where
        C: Into<Recipient>
; fn edit_message_live_location_inline<I>(
        &self,
        inline_message_id: I,
        latitude: f64,
        longitude: f64
    ) -> Self::EditMessageLiveLocationInline
    where
        I: Into<String>
; fn stop_message_live_location<C>(
        &self,
        chat_id: C,
        message_id: MessageId,
        latitude: f64,
        longitude: f64
    ) -> Self::StopMessageLiveLocation
    where
        C: Into<Recipient>
; fn stop_message_live_location_inline<I>(
        &self,
        inline_message_id: I,
        latitude: f64,
        longitude: f64
    ) -> Self::StopMessageLiveLocationInline
    where
        I: Into<String>
; fn send_venue<C, T, A>(
        &self,
        chat_id: C,
        latitude: f64,
        longitude: f64,
        title: T,
        address: A
    ) -> Self::SendVenue
    where
        C: Into<Recipient>,
        T: Into<String>,
        A: Into<String>
; fn send_contact<C, P, F>(
        &self,
        chat_id: C,
        phone_number: P,
        first_name: F
    ) -> Self::SendContact
    where
        C: Into<Recipient>,
        P: Into<String>,
        F: Into<String>
; fn send_poll<C, Q, O>(
        &self,
        chat_id: C,
        question: Q,
        options: O
    ) -> Self::SendPoll
    where
        C: Into<Recipient>,
        Q: Into<String>,
        O: IntoIterator<Item = String>
; fn send_dice<C>(&self, chat_id: C) -> Self::SendDice
    where
        C: Into<Recipient>
; fn send_chat_action<C>(
        &self,
        chat_id: C,
        action: ChatAction
    ) -> Self::SendChatAction
    where
        C: Into<Recipient>
; fn get_user_profile_photos(
        &self,
        user_id: UserId
    ) -> Self::GetUserProfilePhotos; fn get_file<F>(&self, file_id: F) -> Self::GetFile
    where
        F: Into<String>
; fn ban_chat_member<C>(
        &self,
        chat_id: C,
        user_id: UserId
    ) -> Self::BanChatMember
    where
        C: Into<Recipient>
; fn kick_chat_member<C>(
        &self,
        chat_id: C,
        user_id: UserId
    ) -> Self::KickChatMember
    where
        C: Into<Recipient>
; fn unban_chat_member<C>(
        &self,
        chat_id: C,
        user_id: UserId
    ) -> Self::UnbanChatMember
    where
        C: Into<Recipient>
; fn restrict_chat_member<C>(
        &self,
        chat_id: C,
        user_id: UserId,
        permissions: ChatPermissions
    ) -> Self::RestrictChatMember
    where
        C: Into<Recipient>
; fn promote_chat_member<C>(
        &self,
        chat_id: C,
        user_id: UserId
    ) -> Self::PromoteChatMember
    where
        C: Into<Recipient>
; fn set_chat_administrator_custom_title<Ch, C>(
        &self,
        chat_id: Ch,
        user_id: UserId,
        custom_title: C
    ) -> Self::SetChatAdministratorCustomTitle
    where
        Ch: Into<Recipient>,
        C: Into<String>
; fn ban_chat_sender_chat<C, S>(
        &self,
        chat_id: C,
        sender_chat_id: S
    ) -> Self::BanChatSenderChat
    where
        C: Into<Recipient>,
        S: Into<ChatId>
; fn unban_chat_sender_chat<C, S>(
        &self,
        chat_id: C,
        sender_chat_id: S
    ) -> Self::UnbanChatSenderChat
    where
        C: Into<Recipient>,
        S: Into<ChatId>
; fn set_chat_permissions<C>(
        &self,
        chat_id: C,
        permissions: ChatPermissions
    ) -> Self::SetChatPermissions
    where
        C: Into<Recipient>
; fn export_chat_invite_link<C>(
        &self,
        chat_id: C
    ) -> Self::ExportChatInviteLink
    where
        C: Into<Recipient>
; fn create_chat_invite_link<C>(
        &self,
        chat_id: C
    ) -> Self::CreateChatInviteLink
    where
        C: Into<Recipient>
; fn edit_chat_invite_link<C, I>(
        &self,
        chat_id: C,
        invite_link: I
    ) -> Self::EditChatInviteLink
    where
        C: Into<Recipient>,
        I: Into<String>
; fn revoke_chat_invite_link<C, I>(
        &self,
        chat_id: C,
        invite_link: I
    ) -> Self::RevokeChatInviteLink
    where
        C: Into<Recipient>,
        I: Into<String>
; fn approve_chat_join_request<C>(
        &self,
        chat_id: C,
        user_id: UserId
    ) -> Self::ApproveChatJoinRequest
    where
        C: Into<Recipient>
; fn decline_chat_join_request<C>(
        &self,
        chat_id: C,
        user_id: UserId
    ) -> Self::DeclineChatJoinRequest
    where
        C: Into<Recipient>
; fn set_chat_photo<C>(
        &self,
        chat_id: C,
        photo: InputFile
    ) -> Self::SetChatPhoto
    where
        C: Into<Recipient>
; fn delete_chat_photo<C>(&self, chat_id: C) -> Self::DeleteChatPhoto
    where
        C: Into<Recipient>
; fn set_chat_title<C, T>(&self, chat_id: C, title: T) -> Self::SetChatTitle
    where
        C: Into<Recipient>,
        T: Into<String>
; fn set_chat_description<C>(&self, chat_id: C) -> Self::SetChatDescription
    where
        C: Into<Recipient>
; fn pin_chat_message<C>(
        &self,
        chat_id: C,
        message_id: MessageId
    ) -> Self::PinChatMessage
    where
        C: Into<Recipient>
; fn unpin_chat_message<C>(&self, chat_id: C) -> Self::UnpinChatMessage
    where
        C: Into<Recipient>
; fn unpin_all_chat_messages<C>(
        &self,
        chat_id: C
    ) -> Self::UnpinAllChatMessages
    where
        C: Into<Recipient>
; fn leave_chat<C>(&self, chat_id: C) -> Self::LeaveChat
    where
        C: Into<Recipient>
; fn get_chat<C>(&self, chat_id: C) -> Self::GetChat
    where
        C: Into<Recipient>
; fn get_chat_administrators<C>(
        &self,
        chat_id: C
    ) -> Self::GetChatAdministrators
    where
        C: Into<Recipient>
; fn get_chat_member_count<C>(&self, chat_id: C) -> Self::GetChatMemberCount
    where
        C: Into<Recipient>
; fn get_chat_members_count<C>(&self, chat_id: C) -> Self::GetChatMembersCount
    where
        C: Into<Recipient>
; fn get_chat_member<C>(
        &self,
        chat_id: C,
        user_id: UserId
    ) -> Self::GetChatMember
    where
        C: Into<Recipient>
; fn set_chat_sticker_set<C, S>(
        &self,
        chat_id: C,
        sticker_set_name: S
    ) -> Self::SetChatStickerSet
    where
        C: Into<Recipient>,
        S: Into<String>
; fn delete_chat_sticker_set<C>(
        &self,
        chat_id: C
    ) -> Self::DeleteChatStickerSet
    where
        C: Into<Recipient>
; fn answer_callback_query<C>(
        &self,
        callback_query_id: C
    ) -> Self::AnswerCallbackQuery
    where
        C: Into<String>
; fn set_my_commands<C>(&self, commands: C) -> Self::SetMyCommands
    where
        C: IntoIterator<Item = BotCommand>
; fn get_my_commands(&self) -> Self::GetMyCommands; fn set_chat_menu_button(&self) -> Self::SetChatMenuButton; fn get_chat_menu_button(&self) -> Self::GetChatMenuButton; fn set_my_default_administrator_rights(
        &self
    ) -> Self::SetMyDefaultAdministratorRights; fn get_my_default_administrator_rights(
        &self
    ) -> Self::GetMyDefaultAdministratorRights; fn delete_my_commands(&self) -> Self::DeleteMyCommands; fn answer_inline_query<I, R>(
        &self,
        inline_query_id: I,
        results: R
    ) -> Self::AnswerInlineQuery
    where
        I: Into<String>,
        R: IntoIterator<Item = InlineQueryResult>
; fn answer_web_app_query<W>(
        &self,
        web_app_query_id: W,
        result: InlineQueryResult
    ) -> Self::AnswerWebAppQuery
    where
        W: Into<String>
; fn edit_message_text<C, T>(
        &self,
        chat_id: C,
        message_id: MessageId,
        text: T
    ) -> Self::EditMessageText
    where
        C: Into<Recipient>,
        T: Into<String>
; fn edit_message_text_inline<I, T>(
        &self,
        inline_message_id: I,
        text: T
    ) -> Self::EditMessageTextInline
    where
        I: Into<String>,
        T: Into<String>
; fn edit_message_caption<C>(
        &self,
        chat_id: C,
        message_id: MessageId
    ) -> Self::EditMessageCaption
    where
        C: Into<Recipient>
; fn edit_message_caption_inline<I>(
        &self,
        inline_message_id: I
    ) -> Self::EditMessageCaptionInline
    where
        I: Into<String>
; fn edit_message_media<C>(
        &self,
        chat_id: C,
        message_id: MessageId,
        media: InputMedia
    ) -> Self::EditMessageMedia
    where
        C: Into<Recipient>
; fn edit_message_media_inline<I>(
        &self,
        inline_message_id: I,
        media: InputMedia
    ) -> Self::EditMessageMediaInline
    where
        I: Into<String>
; fn edit_message_reply_markup<C>(
        &self,
        chat_id: C,
        message_id: MessageId
    ) -> Self::EditMessageReplyMarkup
    where
        C: Into<Recipient>
; fn edit_message_reply_markup_inline<I>(
        &self,
        inline_message_id: I
    ) -> Self::EditMessageReplyMarkupInline
    where
        I: Into<String>
; fn stop_poll<C>(&self, chat_id: C, message_id: MessageId) -> Self::StopPoll
    where
        C: Into<Recipient>
; fn delete_message<C>(
        &self,
        chat_id: C,
        message_id: MessageId
    ) -> Self::DeleteMessage
    where
        C: Into<Recipient>
; fn send_sticker<C>(&self, chat_id: C, sticker: InputFile) -> Self::SendSticker
    where
        C: Into<Recipient>
; fn get_sticker_set<N>(&self, name: N) -> Self::GetStickerSet
    where
        N: Into<String>
; fn get_custom_emoji_stickers<C>(
        &self,
        custom_emoji_ids: C
    ) -> Self::GetCustomEmojiStickers
    where
        C: IntoIterator<Item = String>
; fn upload_sticker_file(
        &self,
        user_id: UserId,
        png_sticker: InputFile
    ) -> Self::UploadStickerFile; fn create_new_sticker_set<N, T, E>(
        &self,
        user_id: UserId,
        name: N,
        title: T,
        sticker: InputSticker,
        emojis: E
    ) -> Self::CreateNewStickerSet
    where
        N: Into<String>,
        T: Into<String>,
        E: Into<String>
; fn add_sticker_to_set<N, E>(
        &self,
        user_id: UserId,
        name: N,
        sticker: InputSticker,
        emojis: E
    ) -> Self::AddStickerToSet
    where
        N: Into<String>,
        E: Into<String>
; fn set_sticker_position_in_set<S>(
        &self,
        sticker: S,
        position: u32
    ) -> Self::SetStickerPositionInSet
    where
        S: Into<String>
; fn delete_sticker_from_set<S>(
        &self,
        sticker: S
    ) -> Self::DeleteStickerFromSet
    where
        S: Into<String>
; fn set_sticker_set_thumb<N>(
        &self,
        name: N,
        user_id: UserId
    ) -> Self::SetStickerSetThumb
    where
        N: Into<String>
; fn send_invoice<Ch, T, D, Pa, P, C, Pri>(
        &self,
        chat_id: Ch,
        title: T,
        description: D,
        payload: Pa,
        provider_token: P,
        currency: C,
        prices: Pri
    ) -> Self::SendInvoice
    where
        Ch: Into<Recipient>,
        T: Into<String>,
        D: Into<String>,
        Pa: Into<String>,
        P: Into<String>,
        C: Into<String>,
        Pri: IntoIterator<Item = LabeledPrice>
; fn create_invoice_link<T, D, Pa, P, C, Pri>(
        &self,
        title: T,
        description: D,
        payload: Pa,
        provider_token: P,
        currency: C,
        prices: Pri
    ) -> Self::CreateInvoiceLink
    where
        T: Into<String>,
        D: Into<String>,
        Pa: Into<String>,
        P: Into<String>,
        C: Into<String>,
        Pri: IntoIterator<Item = LabeledPrice>
; fn answer_shipping_query<S>(
        &self,
        shipping_query_id: S,
        ok: bool
    ) -> Self::AnswerShippingQuery
    where
        S: Into<String>
; fn answer_pre_checkout_query<P>(
        &self,
        pre_checkout_query_id: P,
        ok: bool
    ) -> Self::AnswerPreCheckoutQuery
    where
        P: Into<String>
; fn set_passport_data_errors<E>(
        &self,
        user_id: UserId,
        errors: E
    ) -> Self::SetPassportDataErrors
    where
        E: IntoIterator<Item = PassportElementError>
; fn send_game<G>(&self, chat_id: u32, game_short_name: G) -> Self::SendGame
    where
        G: Into<String>
; fn set_game_score(
        &self,
        user_id: UserId,
        score: u64,
        chat_id: u32,
        message_id: MessageId
    ) -> Self::SetGameScore; fn set_game_score_inline<I>(
        &self,
        user_id: UserId,
        score: u64,
        inline_message_id: I
    ) -> Self::SetGameScoreInline
    where
        I: Into<String>
; fn get_game_high_scores<T>(
        &self,
        user_id: UserId,
        target: T
    ) -> Self::GetGameHighScores
    where
        T: Into<TargetMessage>
;
}
Expand description

Telegram Bot API client.

This trait is implemented by all bots & bot adaptors.

Calling Telegram Bot API methods

To call Telegram’s methods you first need to get a Bot instance or any other type which implement this trait.

Then you can simply call the method you want and pass required parameters to it. Optional parameters can be supplied by calling setters (like parse_mode in the example below). Lastly, you need to .await the request created in previous steps, to actually send it to telegram and wait for the response.

use teloxide_core::{
    prelude::*,
    types::{ChatId, ParseMode},
};

// Bot implements `Requester`
let bot = Bot::new("TOKEN");

// Required parameters are supplied to the `Requester` methods:
bot.send_message(chat_id, "<b>Text</b>")
    // Optional parameters can be supplied by calling setters
    .parse_mode(ParseMode::Html)
    // To send request to telegram you need to `.await` the request
    .await?;

Adaptors

Similarly to how Iterator has iterator adaptors (FlatMap, Filter, etc) that wrap an Iterator and alter its behaviour, Teloxide has a similar story with Requester.

adaptors module provides a handful of Requester adaptors that can be created via RequesterExt methods. For example using .parse_mode(...) on a bot will wrap it in DefaultParseMode adaptor which sets the parse mode to a default value:

use teloxide_core::{
    prelude::*,
    types::{ChatId, ParseMode},
};

let bot = Bot::new("TOKEN")
    // Wrap the bot in an adaptor
    .parse_mode(ParseMode::Html);

// This will use `ParseMode::Html`
bot.send_message(chat_id, "<b>Text</b>").await?;

// This will use `ParseMode::MarkdownV2`
bot.send_message(chat_id, "**Text**")
    .parse_mode(ParseMode::MarkdownV2)
    .await?;

Note that just as with iterators, adaptors change type:

let bot: Bot = Bot::new("TOKEN").parse_mode(ParseMode::Html);
let bot: DefaultParseMode<Bot> = Bot::new("TOKEN").parse_mode(ParseMode::Html);

Because of this it’s oftentimes more convinient to have a type alias:

type Bot = DefaultParseMode<Throttle<teloxide_core::Bot>>;

let bot: Bot = teloxide_core::Bot::new("TOKEN")
    .throttle(<_>::default())
    .parse_mode(ParseMode::Html);

Also note that most adaptors require specific cargo features to be enabled. For example, to use Throttle you need to enable throttle feature in your Cargo.toml:

teloxide_core = { version = "...", features = ["throttle"] }

Refer to adaptor’s documentation for information about what features it requires.

Using Requester in a generic context

When writing helper function you may be indifferent to which exact type is being used as a bot and instead only care that it implements Requester trait. In this case you can use generic bounds to express this exact thing:

use teloxide_core::{
    prelude::*,
    types::{ChatId, Message},
};

async fn send_hi<R>(bot: R, chat: ChatId) -> Message
where
    R: Requester,
{
    bot.send_message(chat, "hi").await.expect("error")
}

// `send_hi` can be called with `Bot`, `DefaultParseMode<Bot>` and so on, and so forth

Required Associated Types

Error type returned by all requests.

Required Methods

For Telegram documentation see GetUpdates.

For Telegram documentation see SetWebhook.

For Telegram documentation see DeleteWebhook.

For Telegram documentation see GetWebhookInfo.

For Telegram documentation see GetMe.

For Telegram documentation see LogOut.

For Telegram documentation see Close.

For Telegram documentation see SendMessage.

For Telegram documentation see ForwardMessage.

For Telegram documentation see CopyMessage.

For Telegram documentation see SendPhoto.

For Telegram documentation see SendAudio.

For Telegram documentation see SendDocument.

For Telegram documentation see SendVideo.

For Telegram documentation see SendAnimation.

For Telegram documentation see SendVoice.

For Telegram documentation see SendVideoNote.

For Telegram documentation see SendMediaGroup.

For Telegram documentation see SendLocation.

For Telegram documentation see EditMessageLiveLocation.

For Telegram documentation see EditMessageLiveLocationInline.

For Telegram documentation see StopMessageLiveLocation.

For Telegram documentation see StopMessageLiveLocationInline.

For Telegram documentation see SendVenue.

For Telegram documentation see SendContact.

For Telegram documentation see SendPoll.

For Telegram documentation see SendDice.

For Telegram documentation see SendChatAction.

For Telegram documentation see GetUserProfilePhotos.

For Telegram documentation see GetFile.

For Telegram documentation see BanChatMember.

For Telegram documentation see KickChatMember.

For Telegram documentation see UnbanChatMember.

For Telegram documentation see RestrictChatMember.

For Telegram documentation see PromoteChatMember.

For Telegram documentation see SetChatAdministratorCustomTitle.

For Telegram documentation see BanChatSenderChat.

For Telegram documentation see UnbanChatSenderChat.

For Telegram documentation see SetChatPermissions.

For Telegram documentation see ExportChatInviteLink.

For Telegram documentation see CreateChatInviteLink.

For Telegram documentation see EditChatInviteLink.

For Telegram documentation see RevokeChatInviteLink.

For Telegram documentation see ApproveChatJoinRequest.

For Telegram documentation see DeclineChatJoinRequest.

For Telegram documentation see SetChatPhoto.

For Telegram documentation see DeleteChatPhoto.

For Telegram documentation see SetChatTitle.

For Telegram documentation see SetChatDescription.

For Telegram documentation see PinChatMessage.

For Telegram documentation see UnpinChatMessage.

For Telegram documentation see UnpinAllChatMessages.

For Telegram documentation see LeaveChat.

For Telegram documentation see GetChat.

For Telegram documentation see GetChatAdministrators.

For Telegram documentation see GetChatMemberCount.

For Telegram documentation see GetChatMembersCount.

For Telegram documentation see GetChatMember.

For Telegram documentation see SetChatStickerSet.

For Telegram documentation see DeleteChatStickerSet.

For Telegram documentation see AnswerCallbackQuery.

For Telegram documentation see SetMyCommands.

For Telegram documentation see GetMyCommands.

For Telegram documentation see SetChatMenuButton.

For Telegram documentation see GetChatMenuButton.

For Telegram documentation see SetMyDefaultAdministratorRights.

For Telegram documentation see GetMyDefaultAdministratorRights.

For Telegram documentation see DeleteMyCommands.

For Telegram documentation see AnswerInlineQuery.

For Telegram documentation see AnswerWebAppQuery.

For Telegram documentation see EditMessageText.

For Telegram documentation see EditMessageTextInline.

For Telegram documentation see EditMessageCaption.

For Telegram documentation see EditMessageCaptionInline.

For Telegram documentation see EditMessageMedia.

For Telegram documentation see EditMessageMediaInline.

For Telegram documentation see EditMessageReplyMarkup.

For Telegram documentation see EditMessageReplyMarkupInline.

For Telegram documentation see StopPoll.

For Telegram documentation see DeleteMessage.

For Telegram documentation see SendSticker.

For Telegram documentation see GetStickerSet.

For Telegram documentation see GetCustomEmojiStickers.

For Telegram documentation see UploadStickerFile.

For Telegram documentation see CreateNewStickerSet.

For Telegram documentation see AddStickerToSet.

For Telegram documentation see SetStickerPositionInSet.

For Telegram documentation see DeleteStickerFromSet.

For Telegram documentation see SetStickerSetThumb.

For Telegram documentation see SendInvoice.

For Telegram documentation see CreateInvoiceLink.

For Telegram documentation see AnswerShippingQuery.

For Telegram documentation see AnswerPreCheckoutQuery.

For Telegram documentation see SetPassportDataErrors.

For Telegram documentation see SendGame.

For Telegram documentation see SetGameScore.

For Telegram documentation see SetGameScoreInline.

For Telegram documentation see GetGameHighScores.

Implementations on Foreign Types

Implementors