pub struct CallbackQuery {
pub id: CallbackQueryId,
pub from: User,
pub message: Option<MaybeInaccessibleMessage>,
pub inline_message_id: Option<String>,
pub chat_instance: String,
pub data: Option<String>,
pub game_short_name: Option<String>,
}
Expand description
This object represents an incoming callback query from a callback button in an inline keyboard.
If the button that originated the query was attached to a message sent by
the bot, the field message will be present. If the button was attached to a
message sent via the bot (in inline mode), the field inline_message_id
will be present. Exactly one of the fields data or game_short_name
will be
present.
Fields§
§id: CallbackQueryId
A unique identifier for this query.
from: User
A sender.
message: Option<MaybeInaccessibleMessage>
Message sent by the bot with the callback button that originated the query.
Note: if the message is too old, it will be
MaybeInaccessibleMessage::Inaccessible
.
inline_message_id: Option<String>
An identifier of the message sent via the bot in inline mode, that originated the query.
chat_instance: String
A global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games.
data: Option<String>
A data associated with the callback button.
game_short_name: Option<String>
A short name of a Game to be returned, serves as the unique identifier for the game.
Implementations§
Source§impl CallbackQuery
impl CallbackQuery
Sourcepub fn mentioned_users(&self) -> impl Iterator<Item = &User>
pub fn mentioned_users(&self) -> impl Iterator<Item = &User>
Returns all users that are “contained” in this CallbackQuery
structure.
This might be useful to track information about users. Note that this function can return duplicate users.
Sourcepub fn regular_message(&self) -> Option<&Message>
pub fn regular_message(&self) -> Option<&Message>
Examples found in repository?
110async fn callback_handler(bot: Bot, q: CallbackQuery) -> Result<(), Box<dyn Error + Send + Sync>> {
111 if let Some(ref version) = q.data {
112 let text = format!("You chose: {version}");
113
114 // Tell telegram that we've seen this query, to remove 🕑 icons from the
115 // clients. You could also use `answer_callback_query`'s optional
116 // parameters to tweak what happens on the client side.
117 bot.answer_callback_query(q.id.clone()).await?;
118
119 // Edit text of the message to which the buttons were attached
120 if let Some(message) = q.regular_message() {
121 bot.edit_text(message, text).await?;
122 } else if let Some(id) = q.inline_message_id {
123 bot.edit_message_text_inline(id, text).await?;
124 }
125
126 log::info!("You chose: {version}");
127 }
128
129 Ok(())
130}
Trait Implementations§
Source§impl Clone for CallbackQuery
impl Clone for CallbackQuery
Source§fn clone(&self) -> CallbackQuery
fn clone(&self) -> CallbackQuery
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for CallbackQuery
impl Debug for CallbackQuery
Source§impl<'de> Deserialize<'de> for CallbackQuery
impl<'de> Deserialize<'de> for CallbackQuery
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<CallbackQuery, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<CallbackQuery, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for CallbackQuery
impl PartialEq for CallbackQuery
Source§impl Serialize for CallbackQuery
impl Serialize for CallbackQuery
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for CallbackQuery
Auto Trait Implementations§
impl Freeze for CallbackQuery
impl RefUnwindSafe for CallbackQuery
impl Send for CallbackQuery
impl Sync for CallbackQuery
impl Unpin for CallbackQuery
impl UnwindSafe for CallbackQuery
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Erasable for T
impl<T> Erasable for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more