pub struct CommandDescriptions<'a> { /* private fields */ }Expand description
Command descriptions that can be shown to the user (e.g. as a part of
/help message)
Most of the time you don’t need to create this struct yourself as it’s
returned from BotCommands::descriptions.
Implementations§
Source§impl<'a> CommandDescriptions<'a>
impl<'a> CommandDescriptions<'a>
Sourcepub const fn new(descriptions: &'a [CommandDescription<'a>]) -> Self
pub const fn new(descriptions: &'a [CommandDescription<'a>]) -> Self
Creates new CommandDescriptions from a list of command descriptions.
Sourcepub fn global_description(self, global_description: &'a str) -> Self
pub fn global_description(self, global_description: &'a str) -> Self
Sets the global description of these commands.
Sourcepub fn username(self, bot_username: &'a str) -> Self
pub fn username(self, bot_username: &'a str) -> Self
Sets the username of the bot.
After this method is called, returned instance of
CommandDescriptions will append @bot_username to all commands.
This is useful in groups, to disambiguate commands for different bots.
§Examples
use teloxide_ng::utils::command::{CommandDescription, CommandDescriptions};
let descriptions = CommandDescriptions::new(&[
CommandDescription {
prefix: "/",
command: "start",
description: "start this bot",
aliases: &[],
},
CommandDescription {
prefix: "/",
command: "help",
description: "show this message",
aliases: &[],
},
]);
assert_eq!(descriptions.to_string(), "/start — start this bot\n/help — show this message");
assert_eq!(
descriptions.username("username_of_the_bot").to_string(),
"/start@username_of_the_bot — start this bot\n/help@username_of_the_bot — show this \
message"
);Sourcepub fn username_from_me(self, me: &'a Me) -> CommandDescriptions<'a>
pub fn username_from_me(self, me: &'a Me) -> CommandDescriptions<'a>
Sets the username of the bot.
This is the same as username, but uses value returned from get_me
method to get the username.
Examples found in repository?
examples/dispatching_features.rs (line 161)
145async fn simple_commands_handler(
146 cfg: ConfigParameters,
147 bot: Bot,
148 me: teloxide_ng::types::Me,
149 msg: Message,
150 cmd: SimpleCommand,
151) -> Result<(), teloxide_ng::RequestError> {
152 let text = match cmd {
153 SimpleCommand::Help => {
154 if msg.from.unwrap().id == cfg.bot_maintainer {
155 format!(
156 "{}\n\n{}",
157 SimpleCommand::descriptions(),
158 MaintainerCommands::descriptions()
159 )
160 } else if msg.chat.is_group() || msg.chat.is_supergroup() {
161 SimpleCommand::descriptions().username_from_me(&me).to_string()
162 } else {
163 SimpleCommand::descriptions().to_string()
164 }
165 }
166 SimpleCommand::Maintainer => {
167 if msg.from.as_ref().unwrap().id == cfg.bot_maintainer {
168 "Maintainer is you!".into()
169 } else if let Some(username) = cfg.maintainer_username {
170 format!("Maintainer is @{username}")
171 } else {
172 format!("Maintainer ID is {}", cfg.bot_maintainer)
173 }
174 }
175 SimpleCommand::MyId => {
176 format!("{}", msg.from.unwrap().id)
177 }
178 };
179
180 bot.send_message(msg.chat.id, text).await?;
181
182 Ok(())
183}Trait Implementations§
Source§impl<'a> Clone for CommandDescriptions<'a>
impl<'a> Clone for CommandDescriptions<'a>
Source§fn clone(&self) -> CommandDescriptions<'a>
fn clone(&self) -> CommandDescriptions<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'a> Debug for CommandDescriptions<'a>
impl<'a> Debug for CommandDescriptions<'a>
Auto Trait Implementations§
impl<'a> Freeze for CommandDescriptions<'a>
impl<'a> RefUnwindSafe for CommandDescriptions<'a>
impl<'a> Send for CommandDescriptions<'a>
impl<'a> Sync for CommandDescriptions<'a>
impl<'a> Unpin for CommandDescriptions<'a>
impl<'a> UnwindSafe for CommandDescriptions<'a>
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.