refactor(send): inline hidden_template_count into its two call sites

A one-line saturating_sub wrapper exported for one production line (the prompt text) and two assertions — the expression is shorter than its name at every use.
This commit is contained in:
2026-09-24 04:37:54 +08:00
parent 0765b7deec
commit 2ec13a0624
2 changed files with 12 additions and 8 deletions
+11 -2
View File
@@ -907,12 +907,21 @@ mod tests {
// Names are folded, not one per row.
assert_eq!(keyboard.inline_keyboard[0].len(), 3);
assert_eq!(keyboard.inline_keyboard.last().unwrap().len(), 2);
assert_eq!(super::post_send::hidden_template_count(&templates), 140);
assert_eq!(
templates
.len()
.saturating_sub(super::post_send::MAX_TEMPLATE_BUTTONS),
140
);
// Under the cap nothing is hidden and every name gets a button.
let few: HashMap<String, String> = (0..4)
.map(|i| (format!("t{i}"), "[]".to_string()))
.collect();
assert_eq!(super::post_send::hidden_template_count(&few), 0);
assert_eq!(
few.len()
.saturating_sub(super::post_send::MAX_TEMPLATE_BUTTONS),
0
);
assert_eq!(
build_edit_markup(&few)
.inline_keyboard
+1 -6
View File
@@ -212,11 +212,6 @@ pub(super) fn build_edit_markup(templates: &HashMap<String, String>) -> InlineKe
InlineKeyboardMarkup::new(rows)
}
/// How many templates the markup could not fit, for the prompt text.
pub(super) fn hidden_template_count(templates: &HashMap<String, String>) -> usize {
templates.len().saturating_sub(MAX_TEMPLATE_BUTTONS)
}
/// Notifies a chat about a dead-lettered task (skips when `notify_chat_id` is
/// absent).
pub(crate) async fn notify_failure(
@@ -282,7 +277,7 @@ pub(crate) async fn post_send_actions(ctx: &AppContext<'_>, task: &Task, message
let templates = ctx.chat_store.get(chat_id).await.template;
let keyboard = build_edit_markup(&templates);
let mut text = edit_prompt_text(ctx.config.edit_message_ttl);
let hidden = hidden_template_count(&templates);
let hidden = templates.len().saturating_sub(MAX_TEMPLATE_BUTTONS);
if hidden > 0 {
// The keyboard is capped; say so instead of silently hiding them.
text.push_str(&format!(