[][src]Struct tbot::event_loop::EventLoop

#[must_use]pub struct EventLoop { /* fields omitted */ }

Provides an event loop for handling Telegram updates.

With EventLoop, you can configure handlers and start listening to updates via either polling or webhook.

let mut bot = tbot::from_env!("BOT_TOKEN").event_loop();

bot.text(|_| async { println!("Got a text message") });

bot.polling().start();

tbot has many update handlers, such as text you have seen in the example. You can find all of them below on this page.

Methods

impl EventLoop[src]

pub fn into_stateful<S>(self, state: S) -> StatefulEventLoop<S> where
    S: Send + Sync + 'static, 
[src]

Turns this event loop into a stateful one. Handlers added on this event loop are kept.

pub fn username(&mut self, username: String)[src]

Sets the bot's username.

The username is used when checking if a command such as /command@username was directed to the bot.

pub fn polling(self) -> Polling[src]

Starts polling configuration.

pub fn webhook(self, url: &str, port: u16) -> Webhook[src]

Starts webhook configuration.

See our wiki to learn how to use webhook with tbot.

pub fn command<H, F>(&mut self, command: &'static str, handler: H) where
    H: Fn(Arc<Command<Text>>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for a command.

Note that commands such as /command@username will be completely ignored unless you configure the event loop with your bot's username with either username or fetch_username.

pub fn commands<Cm, H, F>(&mut self, commands: Cm, handler: H) where
    Cm: IntoIterator<Item = &'static str>,
    F: Future<Output = ()> + Send + 'static,
    H: Fn(Arc<Command<Text>>) -> F + Send + Sync + 'static, 
[src]

Adds a new handler for a sequence of commands.

Note that commands such as /command@username will be completely ignored unless you configure the event loop with your bot's username with either username or fetch_username.

pub fn start<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Command<Text>>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for the /start command.

pub fn settings<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Command<Text>>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for the /settings command.

pub fn help<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Command<Text>>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for the /help command.

pub fn edited_command<H, F>(&mut self, command: &'static str, handler: H) where
    H: Fn(Arc<Command<EditedText>>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for an edited command.

pub fn edited_commands<Cm, H, F>(&mut self, commands: Cm, handler: H) where
    Cm: IntoIterator<Item = &'static str>,
    F: Future<Output = ()> + Send + 'static,
    H: Fn(Arc<Command<EditedText>>) -> F + Send + Sync + 'static, 
[src]

Adds a new handler for an edited command from sequence of commands.

pub fn after_update<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Update>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler which is run after handling an update.

pub fn animation<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Animation>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for animations.

pub fn audio<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Audio>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for audio.

pub fn before_update<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Update>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler which is run before handling an update.

pub fn chosen_inline<H, F>(&mut self, handler: H) where
    H: Fn(Arc<ChosenInline>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for chosen inline results.

pub fn contact<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Contact>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for contacts.

pub fn connected_website<H, F>(&mut self, handler: H) where
    H: Fn(Arc<ConnectedWebsite>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for connected websites.

pub fn created_group<H, F>(&mut self, handler: H) where
    H: Fn(Arc<CreatedGroup>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for created groups.

pub fn data_callback<H, F>(&mut self, handler: H) where
    H: Fn(Arc<DataCallback>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for data callbacks.

pub fn deleted_chat_photo<H, F>(&mut self, handler: H) where
    H: Fn(Arc<DeletedChatPhoto>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for deleted chat photos.

pub fn dice<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Dice>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for dice.

pub fn document<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Document>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for documents.

pub fn edited_animation<H, F>(&mut self, handler: H) where
    H: Fn(Arc<EditedAnimation>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for edited animations.

pub fn edited_audio<H, F>(&mut self, handler: H) where
    H: Fn(Arc<EditedAudio>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for edited audio.

pub fn edited_document<H, F>(&mut self, handler: H) where
    H: Fn(Arc<EditedDocument>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for edited documents.

pub fn edited_location<H, F>(&mut self, handler: H) where
    H: Fn(Arc<EditedLocation>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for edited locations.

pub fn edited_photo<H, F>(&mut self, handler: H) where
    H: Fn(Arc<EditedPhoto>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for edited photos.

pub fn edited_text<H, F>(&mut self, handler: H) where
    H: Fn(Arc<EditedText>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for edited text messages.

pub fn edited_video<H, F>(&mut self, handler: H) where
    H: Fn(Arc<EditedVideo>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for edited videos.

pub fn game_callback<H, F>(&mut self, handler: H) where
    H: Fn(Arc<GameCallback>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for game callbacks.

pub fn game<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Game>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for game messages.

pub fn inline<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Inline>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for inline queries.

pub fn invoice<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Invoice>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for invoices.

pub fn left_member<H, F>(&mut self, handler: H) where
    H: Fn(Arc<LeftMember>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for left members.

pub fn location<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Location>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for locations.

pub fn migration<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Migration>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for migrations.

pub fn new_chat_photo<H, F>(&mut self, handler: H) where
    H: Fn(Arc<NewChatPhoto>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for new chat photos.

pub fn new_chat_title<H, F>(&mut self, handler: H) where
    H: Fn(Arc<NewChatTitle>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for new chat titles.

pub fn new_members<H, F>(&mut self, handler: H) where
    H: Fn(Arc<NewMembers>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for new members.

pub fn passport<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Passport>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for passport data.

pub fn payment<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Payment>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for successful payments.

pub fn photo<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Photo>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for photos.

pub fn pinned_message<H, F>(&mut self, handler: H) where
    H: Fn(Arc<PinnedMessage>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for pinned messages.

pub fn poll<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Poll>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for poll messages.

pub fn pre_checkout<H, F>(&mut self, handler: H) where
    H: Fn(Arc<PreCheckout>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for pre-checkout queries.

pub fn shipping<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Shipping>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for shipping queries.

pub fn sticker<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Sticker>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for stickers.

pub fn text<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Text>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for text messages.

pub fn unhandled<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Unhandled>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for unhandled updates.

pub fn updated_poll<H, F>(&mut self, handler: H) where
    H: Fn(Arc<UpdatedPoll>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for new states of polls.

pub fn poll_answer<H, F>(&mut self, handler: H) where
    H: Fn(Arc<PollAnswer>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for new answers in the poll.

pub fn venue<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Venue>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for venues.

pub fn video<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Video>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for videos.

pub fn video_note<H, F>(&mut self, handler: H) where
    H: Fn(Arc<VideoNote>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for video notes.

pub fn voice<H, F>(&mut self, handler: H) where
    H: Fn(Arc<Voice>) -> F + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static, 
[src]

Adds a new handler for voice messages.

pub async fn fetch_username<'_>(&'_ mut self) -> Result<(), MethodCall>[src]

Fetches the bot's username.

The username is used when checking if a command such as /command@username was directed to the bot.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> WithSubscriber for T[src]