Struct teloxide_core::Bot

source ·
pub struct Bot { /* private fields */ }
Expand description

A requests sender.

This is the main type of the library, it allows to send requests to the Telegram Bot API and download files.

TBA methods

All TBA methods are located in the Requester impl for Bot. This allows for opt-in behaviours using requester adaptors.

use teloxide_core::prelude::*;

let bot = Bot::new("TOKEN");
dbg!(bot.get_me().await?);

File download

In the similar way as with TBA methods, file downloading methods are located in a trait — Download<'_>. See its documentation for more.

Clone cost

Bot::clone is relatively cheap, so if you need to share Bot, it’s recommended to clone it, instead of wrapping it in Arc<_>.

Implementations§

source§

impl Bot

Constructors

source

pub fn new<S>(token: S) -> Selfwhere S: Into<String>,

Creates a new Bot with the specified token and the default http-client.

Panics

If it cannot create reqwest::Client.

source

pub fn with_client<S>(token: S, client: Client) -> Selfwhere S: Into<String>,

Creates a new Bot with the specified token and your reqwest::Client.

Caution

Your custom client might not be configured correctly to be able to work in long time durations, see issue 223.

source

pub fn from_env() -> Self

Creates a new Bot with the TELOXIDE_TOKEN & TELOXIDE_PROXY environmental variables (a bot’s token & a proxy) and the default reqwest::Client.

This function passes the value of TELOXIDE_PROXY into reqwest::Proxy::all, if it exists, otherwise returns the default client.

Panics
  • If cannot get the TELOXIDE_TOKEN environmental variable.
  • If it cannot create reqwest::Client.
Examples found in repository?
examples/self_info.rs (line 13)
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    pretty_env_logger::init();

    let chat_id =
        ChatId(std::env::var("CHAT_ID").expect("Expected CHAT_ID env var").parse::<i64>()?);

    let bot = Bot::from_env().parse_mode(ParseMode::MarkdownV2);

    let Me { user: me, .. } = bot.get_me().await?;

    bot.send_dice(chat_id).emoji(DiceEmoji::Dice).await?;
    bot.send_message(chat_id, format!("Hi, my name is **{}** 👋", me.first_name)).await?;

    Ok(())
}
More examples
Hide additional examples
examples/erased.rs (line 32)
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    pretty_env_logger::init();

    let chat_id =
        ChatId(std::env::var("CHAT_ID").expect("Expected CHAT_ID env var").parse::<i64>()?);

    let trace_settings = match std::env::var("TRACE").as_deref() {
        Ok("EVERYTHING_VERBOSE") => trace::Settings::TRACE_EVERYTHING_VERBOSE,
        Ok("EVERYTHING") => trace::Settings::TRACE_EVERYTHING,
        Ok("REQUESTS_VERBOSE") => trace::Settings::TRACE_REQUESTS_VERBOSE,
        Ok("REQUESTS") => trace::Settings::TRACE_REQUESTS,
        Ok("RESPONSES_VERBOSE") => trace::Settings::TRACE_RESPONSES_VERBOSE,
        Ok("RESPONSES") => trace::Settings::TRACE_RESPONSES,
        Ok("EMPTY") | Ok("") | Err(VarError::NotPresent) => trace::Settings::empty(),
        Ok(_) | Err(VarError::NotUnicode(_)) => {
            panic!(
                "Expected `TRACE` environment variable to be equal to any of the following: \
                 `EVERYTHING_VERBOSE`, `EVERYTHING`, `REQUESTS_VERBOSE`, `REQUESTS`, \
                 `RESPONSES_VERBOSE`, `RESPONSES`, `EMPTY`, `` (empty string)"
            )
        }
    };

    log::info!("Trace settings: {:?}", trace_settings);

    let bot = if trace_settings.is_empty() {
        Bot::from_env().erase()
    } else {
        Bot::from_env().trace(trace_settings).erase()
    };

    bot.send_chat_action(chat_id, ChatAction::Typing).await?;
    tokio::time::sleep(Duration::from_secs(1)).await;
    bot.send_message(chat_id, "Hey hey hey").await?;

    Ok(())
}
source

pub fn from_env_with_client(client: Client) -> Self

Creates a new Bot with the TELOXIDE_TOKEN environmental variable (a bot’s token) and your reqwest::Client.

Panics

If cannot get the TELOXIDE_TOKEN environmental variable.

Caution

Your custom client might not be configured correctly to be able to work in long time durations, see issue 223.

source

pub fn set_api_url(self, url: Url) -> Self

Sets a custom API URL.

For example, you can run your own Telegram bot API server and set its URL using this method.

Examples
use teloxide_core::{
    requests::{Request, Requester},
    Bot,
};

let url = reqwest::Url::parse("https://localhost/tbas").unwrap();
let bot = Bot::new("TOKEN").set_api_url(url);
// From now all methods will use "https://localhost/tbas" as an API URL.
bot.get_me().await
Multi-instance behaviour

This method only sets the url for one bot instace, older clones are unaffected.

use teloxide_core::Bot;

let bot = Bot::new("TOKEN");
let bot2 = bot.clone();
let bot = bot.set_api_url(reqwest::Url::parse("https://example.com/").unwrap());

assert_eq!(bot.api_url().as_str(), "https://example.com/");
assert_eq!(bot.clone().api_url().as_str(), "https://example.com/");
assert_ne!(bot2.api_url().as_str(), "https://example.com/");
source§

impl Bot

Getters

source

pub fn token(&self) -> &str

Returns currently used token.

source

pub fn client(&self) -> &Client

Returns currently used http-client.

source

pub fn api_url(&self) -> Url

Returns currently used token API url.

Trait Implementations§

source§

impl Clone for Bot

source§

fn clone(&self) -> Bot

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Bot

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'w> Download<'w> for Bot

§

type Err = DownloadError

An error returned from download_file.
§

type Fut = Pin<Box<dyn Future<Output = Result<(), DownloadError>> + Send + 'w, Global>>

A future returned from download_file.
source§

fn download_file( &self, path: &str, destination: &'w mut (dyn AsyncWrite + Unpin + Send) ) -> Self::Fut

Download a file from Telegram into destination. Read more
§

type StreamErr = Error

An error returned from download_file_stream.
§

type Stream = Pin<Box<dyn Stream<Item = Result<Bytes, Error>> + Send + 'static, Global>>

A stream returned from download_file_stream.
source§

fn download_file_stream(&self, path: &str) -> Self::Stream

Download a file from Telegram as [Stream]. Read more
source§

impl Requester for Bot

§

type Err = RequestError

Error type returned by all requests.
§

type GetUpdates = JsonRequest<GetUpdates>

source§

fn get_updates(&self) -> Self::GetUpdates

For Telegram documentation see GetUpdates.
§

type SetWebhook = MultipartRequest<SetWebhook>

source§

fn set_webhook(&self, url: Url) -> Self::SetWebhook

For Telegram documentation see SetWebhook.
§

type DeleteWebhook = JsonRequest<DeleteWebhook>

source§

fn delete_webhook(&self) -> Self::DeleteWebhook

For Telegram documentation see DeleteWebhook.
§

type GetWebhookInfo = JsonRequest<GetWebhookInfo>

source§

fn get_webhook_info(&self) -> Self::GetWebhookInfo

For Telegram documentation see GetWebhookInfo.
§

type GetMe = JsonRequest<GetMe>

source§

fn get_me(&self) -> Self::GetMe

For Telegram documentation see GetMe.
§

type SendMessage = JsonRequest<SendMessage>

source§

fn send_message<C, T>(&self, chat_id: C, text: T) -> Self::SendMessagewhere C: Into<Recipient>, T: Into<String>,

For Telegram documentation see SendMessage.
§

type ForwardMessage = JsonRequest<ForwardMessage>

source§

fn forward_message<C, F>( &self, chat_id: C, from_chat_id: F, message_id: MessageId ) -> Self::ForwardMessagewhere C: Into<Recipient>, F: Into<Recipient>,

For Telegram documentation see ForwardMessage.
§

type SendPhoto = MultipartRequest<SendPhoto>

source§

fn send_photo<C>(&self, chat_id: C, photo: InputFile) -> Self::SendPhotowhere C: Into<Recipient>,

For Telegram documentation see SendPhoto.
§

type SendAudio = MultipartRequest<SendAudio>

source§

fn send_audio<C>(&self, chat_id: C, audio: InputFile) -> Self::SendAudiowhere C: Into<Recipient>,

For Telegram documentation see SendAudio.
§

type SendDocument = MultipartRequest<SendDocument>

source§

fn send_document<C>(&self, chat_id: C, document: InputFile) -> Self::SendDocumentwhere C: Into<Recipient>,

For Telegram documentation see SendDocument.
§

type SendVideo = MultipartRequest<SendVideo>

source§

fn send_video<C>(&self, chat_id: C, video: InputFile) -> Self::SendVideowhere C: Into<Recipient>,

For Telegram documentation see SendVideo.
§

type SendAnimation = MultipartRequest<SendAnimation>

source§

fn send_animation<C>( &self, chat_id: C, animation: InputFile ) -> Self::SendAnimationwhere C: Into<Recipient>,

For Telegram documentation see SendAnimation.
§

type SendVoice = MultipartRequest<SendVoice>

source§

fn send_voice<C>(&self, chat_id: C, voice: InputFile) -> Self::SendVoicewhere C: Into<Recipient>,

For Telegram documentation see SendVoice.
§

type SendVideoNote = MultipartRequest<SendVideoNote>

source§

fn send_video_note<C>( &self, chat_id: C, video_note: InputFile ) -> Self::SendVideoNotewhere C: Into<Recipient>,

For Telegram documentation see SendVideoNote.
§

type SendMediaGroup = MultipartRequest<SendMediaGroup>

source§

fn send_media_group<C, M>(&self, chat_id: C, media: M) -> Self::SendMediaGroupwhere C: Into<Recipient>, M: IntoIterator<Item = InputMedia>,

For Telegram documentation see SendMediaGroup.
§

type SendLocation = JsonRequest<SendLocation>

source§

fn send_location<C>( &self, chat_id: C, latitude: f64, longitude: f64 ) -> Self::SendLocationwhere C: Into<Recipient>,

For Telegram documentation see SendLocation.
§

type EditMessageLiveLocation = JsonRequest<EditMessageLiveLocation>

source§

fn edit_message_live_location<C>( &self, chat_id: C, message_id: MessageId, latitude: f64, longitude: f64 ) -> Self::EditMessageLiveLocationwhere C: Into<Recipient>,

For Telegram documentation see EditMessageLiveLocation.
§

type EditMessageLiveLocationInline = JsonRequest<EditMessageLiveLocationInline>

source§

fn edit_message_live_location_inline<I>( &self, inline_message_id: I, latitude: f64, longitude: f64 ) -> Self::EditMessageLiveLocationInlinewhere I: Into<String>,

For Telegram documentation see EditMessageLiveLocationInline.
§

type StopMessageLiveLocation = JsonRequest<StopMessageLiveLocation>

source§

fn stop_message_live_location<C>( &self, chat_id: C, message_id: MessageId, latitude: f64, longitude: f64 ) -> Self::StopMessageLiveLocationwhere C: Into<Recipient>,

For Telegram documentation see StopMessageLiveLocation.
§

type StopMessageLiveLocationInline = JsonRequest<StopMessageLiveLocationInline>

source§

fn stop_message_live_location_inline<I>( &self, inline_message_id: I, latitude: f64, longitude: f64 ) -> Self::StopMessageLiveLocationInlinewhere I: Into<String>,

For Telegram documentation see StopMessageLiveLocationInline.
§

type SendVenue = JsonRequest<SendVenue>

source§

fn send_venue<C, T, A>( &self, chat_id: C, latitude: f64, longitude: f64, title: T, address: A ) -> Self::SendVenuewhere C: Into<Recipient>, T: Into<String>, A: Into<String>,

For Telegram documentation see SendVenue.
§

type SendContact = JsonRequest<SendContact>

source§

fn send_contact<C, P, F>( &self, chat_id: C, phone_number: P, first_name: F ) -> Self::SendContactwhere C: Into<Recipient>, P: Into<String>, F: Into<String>,

For Telegram documentation see SendContact.
§

type SendPoll = JsonRequest<SendPoll>

source§

fn send_poll<C, Q, O>(&self, chat_id: C, question: Q, options: O) -> Self::SendPollwhere C: Into<Recipient>, Q: Into<String>, O: IntoIterator<Item = String>,

For Telegram documentation see SendPoll.
§

type SendDice = JsonRequest<SendDice>

source§

fn send_dice<C>(&self, chat_id: C) -> Self::SendDicewhere C: Into<Recipient>,

For Telegram documentation see SendDice.
§

type SendChatAction = JsonRequest<SendChatAction>

source§

fn send_chat_action<C>( &self, chat_id: C, action: ChatAction ) -> Self::SendChatActionwhere C: Into<Recipient>,

For Telegram documentation see SendChatAction.
§

type GetUserProfilePhotos = JsonRequest<GetUserProfilePhotos>

source§

fn get_user_profile_photos(&self, user_id: UserId) -> Self::GetUserProfilePhotos

For Telegram documentation see GetUserProfilePhotos.
§

type GetFile = JsonRequest<GetFile>

source§

fn get_file<F>(&self, file_id: F) -> Self::GetFilewhere F: Into<String>,

For Telegram documentation see GetFile.
§

type KickChatMember = JsonRequest<KickChatMember>

source§

fn kick_chat_member<C>(&self, chat_id: C, user_id: UserId) -> Self::KickChatMemberwhere C: Into<Recipient>,

For Telegram documentation see KickChatMember.
§

type BanChatMember = JsonRequest<BanChatMember>

source§

fn ban_chat_member<C>(&self, chat_id: C, user_id: UserId) -> Self::BanChatMemberwhere C: Into<Recipient>,

For Telegram documentation see BanChatMember.
§

type UnbanChatMember = JsonRequest<UnbanChatMember>

source§

fn unban_chat_member<C>( &self, chat_id: C, user_id: UserId ) -> Self::UnbanChatMemberwhere C: Into<Recipient>,

For Telegram documentation see UnbanChatMember.
§

type RestrictChatMember = JsonRequest<RestrictChatMember>

source§

fn restrict_chat_member<C>( &self, chat_id: C, user_id: UserId, permissions: ChatPermissions ) -> Self::RestrictChatMemberwhere C: Into<Recipient>,

For Telegram documentation see RestrictChatMember.
§

type PromoteChatMember = JsonRequest<PromoteChatMember>

source§

fn promote_chat_member<C>( &self, chat_id: C, user_id: UserId ) -> Self::PromoteChatMemberwhere C: Into<Recipient>,

For Telegram documentation see PromoteChatMember.
§

type SetChatAdministratorCustomTitle = JsonRequest<SetChatAdministratorCustomTitle>

source§

fn set_chat_administrator_custom_title<Ch, Cu>( &self, chat_id: Ch, user_id: UserId, custom_title: Cu ) -> Self::SetChatAdministratorCustomTitlewhere Ch: Into<Recipient>, Cu: Into<String>,

For Telegram documentation see SetChatAdministratorCustomTitle.
§

type BanChatSenderChat = JsonRequest<BanChatSenderChat>

source§

fn ban_chat_sender_chat<C, S>( &self, chat_id: C, sender_chat_id: S ) -> Self::BanChatSenderChatwhere C: Into<Recipient>, S: Into<ChatId>,

For Telegram documentation see BanChatSenderChat.
§

type UnbanChatSenderChat = JsonRequest<UnbanChatSenderChat>

source§

fn unban_chat_sender_chat<C, S>( &self, chat_id: C, sender_chat_id: S ) -> Self::UnbanChatSenderChatwhere C: Into<Recipient>, S: Into<ChatId>,

For Telegram documentation see UnbanChatSenderChat.
§

type SetChatPermissions = JsonRequest<SetChatPermissions>

source§

fn set_chat_permissions<C>( &self, chat_id: C, permissions: ChatPermissions ) -> Self::SetChatPermissionswhere C: Into<Recipient>,

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.
§

type ApproveChatJoinRequest = JsonRequest<ApproveChatJoinRequest>

source§

fn approve_chat_join_request<C>( &self, chat_id: C, user_id: UserId ) -> Self::ApproveChatJoinRequestwhere C: Into<Recipient>,

For Telegram documentation see ApproveChatJoinRequest.
§

type DeclineChatJoinRequest = JsonRequest<DeclineChatJoinRequest>

source§

fn decline_chat_join_request<C>( &self, chat_id: C, user_id: UserId ) -> Self::DeclineChatJoinRequestwhere C: Into<Recipient>,

For Telegram documentation see DeclineChatJoinRequest.
§

type SetChatPhoto = MultipartRequest<SetChatPhoto>

source§

fn set_chat_photo<C>(&self, chat_id: C, photo: InputFile) -> Self::SetChatPhotowhere C: Into<Recipient>,

For Telegram documentation see SetChatPhoto.
§

type DeleteChatPhoto = JsonRequest<DeleteChatPhoto>

source§

fn delete_chat_photo<C>(&self, chat_id: C) -> Self::DeleteChatPhotowhere C: Into<Recipient>,

For Telegram documentation see DeleteChatPhoto.
§

type SetChatTitle = JsonRequest<SetChatTitle>

source§

fn set_chat_title<C, T>(&self, chat_id: C, title: T) -> Self::SetChatTitlewhere C: Into<Recipient>, T: Into<String>,

For Telegram documentation see SetChatTitle.
§

type SetChatDescription = JsonRequest<SetChatDescription>

source§

fn set_chat_description<C>(&self, chat_id: C) -> Self::SetChatDescriptionwhere C: Into<Recipient>,

For Telegram documentation see SetChatDescription.
§

type PinChatMessage = JsonRequest<PinChatMessage>

source§

fn pin_chat_message<C>( &self, chat_id: C, message_id: MessageId ) -> Self::PinChatMessagewhere C: Into<Recipient>,

For Telegram documentation see PinChatMessage.
§

type UnpinChatMessage = JsonRequest<UnpinChatMessage>

source§

fn unpin_chat_message<C>(&self, chat_id: C) -> Self::UnpinChatMessagewhere C: Into<Recipient>,

For Telegram documentation see UnpinChatMessage.
§

type LeaveChat = JsonRequest<LeaveChat>

source§

fn leave_chat<C>(&self, chat_id: C) -> Self::LeaveChatwhere C: Into<Recipient>,

For Telegram documentation see LeaveChat.
§

type GetChat = JsonRequest<GetChat>

source§

fn get_chat<C>(&self, chat_id: C) -> Self::GetChatwhere C: Into<Recipient>,

For Telegram documentation see GetChat.
§

type GetChatAdministrators = JsonRequest<GetChatAdministrators>

source§

fn get_chat_administrators<C>(&self, chat_id: C) -> Self::GetChatAdministratorswhere C: Into<Recipient>,

For Telegram documentation see GetChatAdministrators.
§

type GetChatMembersCount = JsonRequest<GetChatMembersCount>

source§

fn get_chat_members_count<C>(&self, chat_id: C) -> Self::GetChatMembersCountwhere C: Into<Recipient>,

For Telegram documentation see GetChatMembersCount.
§

type GetChatMemberCount = JsonRequest<GetChatMemberCount>

source§

fn get_chat_member_count<C>(&self, chat_id: C) -> Self::GetChatMemberCountwhere C: Into<Recipient>,

For Telegram documentation see GetChatMemberCount.
§

type GetChatMember = JsonRequest<GetChatMember>

source§

fn get_chat_member<C>(&self, chat_id: C, user_id: UserId) -> Self::GetChatMemberwhere C: Into<Recipient>,

For Telegram documentation see GetChatMember.
§

type SetChatStickerSet = JsonRequest<SetChatStickerSet>

source§

fn set_chat_sticker_set<C, S>( &self, chat_id: C, sticker_set_name: S ) -> Self::SetChatStickerSetwhere C: Into<Recipient>, S: Into<String>,

For Telegram documentation see SetChatStickerSet.
§

type DeleteChatStickerSet = JsonRequest<DeleteChatStickerSet>

source§

fn delete_chat_sticker_set<C>(&self, chat_id: C) -> Self::DeleteChatStickerSetwhere C: Into<Recipient>,

For Telegram documentation see DeleteChatStickerSet.
§

type GetForumTopicIconStickers = JsonRequest<GetForumTopicIconStickers>

source§

fn get_forum_topic_icon_stickers(&self) -> Self::GetForumTopicIconStickers

For Telegram documentation see GetForumTopicIconStickers.
§

type CreateForumTopic = JsonRequest<CreateForumTopic>

source§

fn create_forum_topic<C, N, I>( &self, chat_id: C, name: N, icon_color: u32, icon_custom_emoji_id: I ) -> Self::CreateForumTopicwhere C: Into<Recipient>, N: Into<String>, I: Into<String>,

For Telegram documentation see CreateForumTopic.
§

type EditForumTopic = JsonRequest<EditForumTopic>

source§

fn edit_forum_topic<C>( &self, chat_id: C, message_thread_id: i32 ) -> Self::EditForumTopicwhere C: Into<Recipient>,

For Telegram documentation see EditForumTopic.
§

type CloseForumTopic = JsonRequest<CloseForumTopic>

source§

fn close_forum_topic<C>( &self, chat_id: C, message_thread_id: i32 ) -> Self::CloseForumTopicwhere C: Into<Recipient>,

For Telegram documentation see CloseForumTopic.
§

type ReopenForumTopic = JsonRequest<ReopenForumTopic>

source§

fn reopen_forum_topic<C>( &self, chat_id: C, message_thread_id: i32 ) -> Self::ReopenForumTopicwhere C: Into<Recipient>,

For Telegram documentation see ReopenForumTopic.
§

type DeleteForumTopic = JsonRequest<DeleteForumTopic>

source§

fn delete_forum_topic<C>( &self, chat_id: C, message_thread_id: i32 ) -> Self::DeleteForumTopicwhere C: Into<Recipient>,

For Telegram documentation see DeleteForumTopic.
§

type UnpinAllForumTopicMessages = JsonRequest<UnpinAllForumTopicMessages>

source§

fn unpin_all_forum_topic_messages<C>( &self, chat_id: C, message_thread_id: i32 ) -> Self::UnpinAllForumTopicMessageswhere C: Into<Recipient>,

For Telegram documentation see UnpinAllForumTopicMessages.
§

type EditGeneralForumTopic = JsonRequest<EditGeneralForumTopic>

source§

fn edit_general_forum_topic<C, N>( &self, chat_id: C, name: N ) -> Self::EditGeneralForumTopicwhere C: Into<Recipient>, N: Into<String>,

For Telegram documentation see EditGeneralForumTopic.
§

type CloseGeneralForumTopic = JsonRequest<CloseGeneralForumTopic>

source§

fn close_general_forum_topic<C>( &self, chat_id: C ) -> Self::CloseGeneralForumTopicwhere C: Into<Recipient>,

For Telegram documentation see CloseGeneralForumTopic.
§

type ReopenGeneralForumTopic = JsonRequest<ReopenGeneralForumTopic>

source§

fn reopen_general_forum_topic<C>( &self, chat_id: C ) -> Self::ReopenGeneralForumTopicwhere C: Into<Recipient>,

For Telegram documentation see ReopenGeneralForumTopic.
§

type HideGeneralForumTopic = JsonRequest<HideGeneralForumTopic>

source§

fn hide_general_forum_topic<C>(&self, chat_id: C) -> Self::HideGeneralForumTopicwhere C: Into<Recipient>,

For Telegram documentation see HideGeneralForumTopic.
§

type UnhideGeneralForumTopic = JsonRequest<UnhideGeneralForumTopic>

source§

fn unhide_general_forum_topic<C>( &self, chat_id: C ) -> Self::UnhideGeneralForumTopicwhere C: Into<Recipient>,

For Telegram documentation see UnhideGeneralForumTopic.
§

type AnswerCallbackQuery = JsonRequest<AnswerCallbackQuery>

source§

fn answer_callback_query<C>( &self, callback_query_id: C ) -> Self::AnswerCallbackQuerywhere C: Into<String>,

For Telegram documentation see AnswerCallbackQuery.
§

type SetMyCommands = JsonRequest<SetMyCommands>

source§

fn set_my_commands<C>(&self, commands: C) -> Self::SetMyCommandswhere C: IntoIterator<Item = BotCommand>,

For Telegram documentation see SetMyCommands.
§

type GetMyCommands = JsonRequest<GetMyCommands>

source§

fn get_my_commands(&self) -> Self::GetMyCommands

For Telegram documentation see GetMyCommands.
§

type SetChatMenuButton = JsonRequest<SetChatMenuButton>

source§

fn set_chat_menu_button(&self) -> Self::SetChatMenuButton

For Telegram documentation see SetChatMenuButton.
§

type GetChatMenuButton = JsonRequest<GetChatMenuButton>

source§

fn get_chat_menu_button(&self) -> Self::GetChatMenuButton

For Telegram documentation see GetChatMenuButton.
§

type SetMyDefaultAdministratorRights = JsonRequest<SetMyDefaultAdministratorRights>

source§

fn set_my_default_administrator_rights( &self ) -> Self::SetMyDefaultAdministratorRights

For Telegram documentation see SetMyDefaultAdministratorRights.
§

type GetMyDefaultAdministratorRights = JsonRequest<GetMyDefaultAdministratorRights>

source§

fn get_my_default_administrator_rights( &self ) -> Self::GetMyDefaultAdministratorRights

For Telegram documentation see GetMyDefaultAdministratorRights.
§

type DeleteMyCommands = JsonRequest<DeleteMyCommands>

source§

fn delete_my_commands(&self) -> Self::DeleteMyCommands

For Telegram documentation see DeleteMyCommands.
§

type AnswerInlineQuery = JsonRequest<AnswerInlineQuery>

source§

fn answer_inline_query<I, R>( &self, inline_query_id: I, results: R ) -> Self::AnswerInlineQuerywhere I: Into<String>, R: IntoIterator<Item = InlineQueryResult>,

For Telegram documentation see AnswerInlineQuery.
§

type AnswerWebAppQuery = JsonRequest<AnswerWebAppQuery>

source§

fn answer_web_app_query<W>( &self, web_app_query_id: W, result: InlineQueryResult ) -> Self::AnswerWebAppQuerywhere W: Into<String>,

For Telegram documentation see AnswerWebAppQuery.
§

type EditMessageText = JsonRequest<EditMessageText>

source§

fn edit_message_text<C, T>( &self, chat_id: C, message_id: MessageId, text: T ) -> Self::EditMessageTextwhere C: Into<Recipient>, T: Into<String>,

For Telegram documentation see EditMessageText.
§

type EditMessageTextInline = JsonRequest<EditMessageTextInline>

source§

fn edit_message_text_inline<I, T>( &self, inline_message_id: I, text: T ) -> Self::EditMessageTextInlinewhere I: Into<String>, T: Into<String>,

For Telegram documentation see EditMessageTextInline.
§

type EditMessageCaption = JsonRequest<EditMessageCaption>

source§

fn edit_message_caption<C>( &self, chat_id: C, message_id: MessageId ) -> Self::EditMessageCaptionwhere C: Into<Recipient>,

For Telegram documentation see EditMessageCaption.
§

type EditMessageCaptionInline = JsonRequest<EditMessageCaptionInline>

source§

fn edit_message_caption_inline<I>( &self, inline_message_id: I ) -> Self::EditMessageCaptionInlinewhere I: Into<String>,

For Telegram documentation see EditMessageCaptionInline.
§

type EditMessageMedia = MultipartRequest<EditMessageMedia>

source§

fn edit_message_media<C>( &self, chat_id: C, message_id: MessageId, media: InputMedia ) -> Self::EditMessageMediawhere C: Into<Recipient>,

For Telegram documentation see EditMessageMedia.
§

type EditMessageMediaInline = MultipartRequest<EditMessageMediaInline>

source§

fn edit_message_media_inline<I>( &self, inline_message_id: I, media: InputMedia ) -> Self::EditMessageMediaInlinewhere I: Into<String>,

For Telegram documentation see EditMessageMediaInline.
§

type EditMessageReplyMarkup = JsonRequest<EditMessageReplyMarkup>

source§

fn edit_message_reply_markup<C>( &self, chat_id: C, message_id: MessageId ) -> Self::EditMessageReplyMarkupwhere C: Into<Recipient>,

For Telegram documentation see EditMessageReplyMarkup.
§

type EditMessageReplyMarkupInline = JsonRequest<EditMessageReplyMarkupInline>

source§

fn edit_message_reply_markup_inline<I>( &self, inline_message_id: I ) -> Self::EditMessageReplyMarkupInlinewhere I: Into<String>,

For Telegram documentation see EditMessageReplyMarkupInline.
§

type StopPoll = JsonRequest<StopPoll>

source§

fn stop_poll<C>(&self, chat_id: C, message_id: MessageId) -> Self::StopPollwhere C: Into<Recipient>,

For Telegram documentation see StopPoll.
§

type DeleteMessage = JsonRequest<DeleteMessage>

source§

fn delete_message<C>( &self, chat_id: C, message_id: MessageId ) -> Self::DeleteMessagewhere C: Into<Recipient>,

For Telegram documentation see DeleteMessage.
§

type SendSticker = MultipartRequest<SendSticker>

source§

fn send_sticker<C>(&self, chat_id: C, sticker: InputFile) -> Self::SendStickerwhere C: Into<Recipient>,

For Telegram documentation see SendSticker.
§

type GetStickerSet = JsonRequest<GetStickerSet>

source§

fn get_sticker_set<N>(&self, name: N) -> Self::GetStickerSetwhere N: Into<String>,

For Telegram documentation see GetStickerSet.
§

type GetCustomEmojiStickers = JsonRequest<GetCustomEmojiStickers>

source§

fn get_custom_emoji_stickers<C>( &self, custom_emoji_ids: C ) -> Self::GetCustomEmojiStickerswhere C: IntoIterator<Item = String>,

For Telegram documentation see GetCustomEmojiStickers.
§

type UploadStickerFile = MultipartRequest<UploadStickerFile>

source§

fn upload_sticker_file( &self, user_id: UserId, png_sticker: InputFile ) -> Self::UploadStickerFile

For Telegram documentation see UploadStickerFile.
§

type CreateNewStickerSet = MultipartRequest<CreateNewStickerSet>

source§

fn create_new_sticker_set<N, T, E>( &self, user_id: UserId, name: N, title: T, sticker: InputSticker, emojis: E ) -> Self::CreateNewStickerSetwhere N: Into<String>, T: Into<String>, E: Into<String>,

For Telegram documentation see CreateNewStickerSet.
§

type AddStickerToSet = MultipartRequest<AddStickerToSet>

source§

fn add_sticker_to_set<N, E>( &self, user_id: UserId, name: N, sticker: InputSticker, emojis: E ) -> Self::AddStickerToSetwhere N: Into<String>, E: Into<String>,

For Telegram documentation see AddStickerToSet.
§

type SetStickerPositionInSet = JsonRequest<SetStickerPositionInSet>

source§

fn set_sticker_position_in_set<S>( &self, sticker: S, position: u32 ) -> Self::SetStickerPositionInSetwhere S: Into<String>,

For Telegram documentation see SetStickerPositionInSet.
§

type DeleteStickerFromSet = JsonRequest<DeleteStickerFromSet>

source§

fn delete_sticker_from_set<S>(&self, sticker: S) -> Self::DeleteStickerFromSetwhere S: Into<String>,

For Telegram documentation see DeleteStickerFromSet.
§

type SetStickerSetThumb = MultipartRequest<SetStickerSetThumb>

source§

fn set_sticker_set_thumb<N>( &self, name: N, user_id: UserId ) -> Self::SetStickerSetThumbwhere N: Into<String>,

For Telegram documentation see SetStickerSetThumb.
§

type SendInvoice = JsonRequest<SendInvoice>

source§

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::SendInvoicewhere Ch: Into<Recipient>, T: Into<String>, D: Into<String>, Pa: Into<String>, P: Into<String>, C: Into<String>, Pri: IntoIterator<Item = LabeledPrice>,

For Telegram documentation see SendInvoice.
For Telegram documentation see CreateInvoiceLink.
§

type AnswerShippingQuery = JsonRequest<AnswerShippingQuery>

source§

fn answer_shipping_query<S>( &self, shipping_query_id: S, ok: bool ) -> Self::AnswerShippingQuerywhere S: Into<String>,

For Telegram documentation see AnswerShippingQuery.
§

type AnswerPreCheckoutQuery = JsonRequest<AnswerPreCheckoutQuery>

source§

fn answer_pre_checkout_query<P>( &self, pre_checkout_query_id: P, ok: bool ) -> Self::AnswerPreCheckoutQuerywhere P: Into<String>,

For Telegram documentation see AnswerPreCheckoutQuery.
§

type SetPassportDataErrors = JsonRequest<SetPassportDataErrors>

source§

fn set_passport_data_errors<E>( &self, user_id: UserId, errors: E ) -> Self::SetPassportDataErrorswhere E: IntoIterator<Item = PassportElementError>,

For Telegram documentation see SetPassportDataErrors.
§

type SendGame = JsonRequest<SendGame>

source§

fn send_game<G>(&self, chat_id: u32, game_short_name: G) -> Self::SendGamewhere G: Into<String>,

For Telegram documentation see SendGame.
§

type SetGameScore = JsonRequest<SetGameScore>

source§

fn set_game_score( &self, user_id: UserId, score: u64, chat_id: u32, message_id: MessageId ) -> Self::SetGameScore

For Telegram documentation see SetGameScore.
§

type SetGameScoreInline = JsonRequest<SetGameScoreInline>

source§

fn set_game_score_inline<I>( &self, user_id: UserId, score: u64, inline_message_id: I ) -> Self::SetGameScoreInlinewhere I: Into<String>,

For Telegram documentation see SetGameScoreInline.
§

type GetGameHighScores = JsonRequest<GetGameHighScores>

source§

fn get_game_high_scores<T>( &self, user_id: UserId, target: T ) -> Self::GetGameHighScoreswhere T: Into<TargetMessage>,

For Telegram documentation see GetGameHighScores.
§

type LogOut = JsonRequest<LogOut>

source§

fn log_out(&self) -> Self::LogOut

For Telegram documentation see LogOut.
§

type Close = JsonRequest<Close>

source§

fn close(&self) -> Self::Close

For Telegram documentation see Close.
§

type CopyMessage = JsonRequest<CopyMessage>

source§

fn copy_message<C, F>( &self, chat_id: C, from_chat_id: F, message_id: MessageId ) -> Self::CopyMessagewhere C: Into<Recipient>, F: Into<Recipient>,

For Telegram documentation see CopyMessage.
§

type UnpinAllChatMessages = JsonRequest<UnpinAllChatMessages>

source§

fn unpin_all_chat_messages<C>(&self, chat_id: C) -> Self::UnpinAllChatMessageswhere C: Into<Recipient>,

For Telegram documentation see UnpinAllChatMessages.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Bot

§

impl Send for Bot

§

impl Sync for Bot

§

impl Unpin for Bot

§

impl !UnwindSafe for Bot

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Erasable for T

§

unsafe fn unerase(this: NonNull<Erased>) -> NonNull<T>

Unerase this erased pointer. Read more
§

const ACK_1_1_0: bool = true

Available on non-enforce_1_1_0_semantics only.
Whether this implementor has acknowledged the 1.1.0 update to unerase’s documented implementation requirements. Read more
§

fn erase(this: NonNull<Self>) -> NonNull<Erased>

Turn this erasable pointer into an erased pointer. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more