1use std::{future::IntoFuture, sync::Arc};
2
3use futures::{future::BoxFuture, FutureExt};
4use reqwest::Url;
5
6use crate::{
7 errors::AsResponseParameters,
8 payloads::*,
9 requests::{HasPayload, Output, Payload, Request, Requester},
10 types::*,
11};
12
13pub struct ErasedRequester<'a, E> {
15 inner: Arc<dyn ErasableRequester<'a, Err = E> + 'a>,
16}
17
18impl<'a, E> ErasedRequester<'a, E> {
19 pub fn new<B>(requester: B) -> Self
25 where
26 B: Requester<Err = E> + 'a,
27 {
28 Self { inner: Arc::new(requester) }
29 }
30}
31
32impl<E> std::fmt::Debug for ErasedRequester<'_, E> {
33 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
34 f.debug_struct("ErasedRequester").finish_non_exhaustive()
35 }
36}
37
38impl<E> Clone for ErasedRequester<'_, E> {
40 fn clone(&self) -> Self {
41 Self { inner: Arc::clone(&self.inner) }
42 }
43}
44
45#[must_use = "Requests are lazy and do nothing unless sent"]
47pub struct ErasedRequest<'a, T, E> {
48 inner: Box<dyn ErasableRequest<'a, Payload = T, Err = E> + 'a>,
49}
50
51impl<'a, T: Payload, E> ErasedRequest<'a, T, E> {
53 pub(crate) fn erase(request: impl Request<Payload = T, Err = E> + 'a) -> Self {
54 Self { inner: Box::new(request) }
55 }
56}
57
58impl<T, E> HasPayload for ErasedRequest<'_, T, E>
59where
60 T: Payload,
61{
62 type Payload = T;
63
64 fn payload_mut(&mut self) -> &mut Self::Payload {
65 self.inner.payload_mut()
66 }
67
68 fn payload_ref(&self) -> &Self::Payload {
69 self.inner.payload_ref()
70 }
71}
72
73impl<'a, T, E> Request for ErasedRequest<'a, T, E>
74where
75 T: Payload,
76 E: std::error::Error + Send,
77{
78 type Err = E;
79
80 type Send = BoxFuture<'a, Result<Output<Self>, Self::Err>>;
81
82 type SendRef = BoxFuture<'a, Result<Output<Self>, Self::Err>>;
83
84 fn send(self) -> Self::Send {
85 self.inner.send_box()
86 }
87
88 fn send_ref(&self) -> Self::SendRef {
89 self.inner.send_ref()
90 }
91}
92
93impl<T, E> IntoFuture for ErasedRequest<'_, T, E>
94where
95 T: Payload,
96 E: std::error::Error + Send,
97{
98 type Output = Result<Output<Self>, <Self as Request>::Err>;
99 type IntoFuture = <Self as Request>::Send;
100
101 fn into_future(self) -> Self::IntoFuture {
102 self.send()
103 }
104}
105
106trait ErasableRequest<'a>: HasPayload {
111 type Err: std::error::Error + Send;
112
113 fn send_box(self: Box<Self>) -> BoxFuture<'a, Result<Output<Self>, Self::Err>>;
114
115 fn send_ref(&self) -> BoxFuture<'a, Result<Output<Self>, Self::Err>>;
116}
117
118impl<'a, R> ErasableRequest<'a> for R
119where
120 R: Request,
121 <R as Request>::Send: 'a,
122 <R as Request>::SendRef: 'a,
123{
124 type Err = R::Err;
125
126 fn send_box(self: Box<Self>) -> BoxFuture<'a, Result<Output<Self>, Self::Err>> {
127 self.send().boxed()
128 }
129
130 fn send_ref(&self) -> BoxFuture<'a, Result<Output<Self>, Self::Err>> {
131 Request::send_ref(self).boxed()
132 }
133}
134
135macro_rules! fty {
136 ($T:ident) => {
137 ErasedRequest<'a, $T, Err>
138 };
139}
140
141macro_rules! fwd_erased {
142 ($m:ident $this:ident ($($arg:ident : $T:ty),*)) => {
143 $this.inner.$m($( fwd_erased!(@convert $m, $arg, $arg : $T) ),*)
144 };
145
146 (@convert send_paid_media, $arg:ident, media : $T:ty) => {
147 $arg.into_iter().collect()
148 };
149 (@convert send_media_group, $arg:ident, media : $T:ty) => {
150 $arg.into_iter().collect()
151 };
152 (@convert $m:ident, $arg:ident, options : $T:ty) => {
153 $arg.into_iter().collect()
154 };
155 (@convert $m:ident, $arg:ident, commands : $T:ty) => {
156 $arg.into_iter().collect()
157 };
158 (@convert $m:ident, $arg:ident, results : $T:ty) => {
159 $arg.into_iter().collect()
160 };
161 (@convert $m:ident, $arg:ident, prices : $T:ty) => {
162 $arg.into_iter().collect()
163 };
164 (@convert $m:ident, $arg:ident, errors : $T:ty) => {
165 $arg.into_iter().collect()
166 };
167 (@convert $m:ident, $arg:ident, custom_emoji_ids : $T:ty) => {
168 $arg.into_iter().collect()
169 };
170 (@convert $m:ident, $arg:ident, stickers: $T:ty) => {
171 $arg.into_iter().collect()
172 };
173 (@convert $m:ident, $arg:ident, emoji_list: $T:ty) => {
174 $arg.into_iter().collect()
175 };
176 (@convert $m:ident, $arg:ident, message_ids: $T:ty) => {
177 $arg.into_iter().collect()
178 };
179 (@convert $m:ident, $arg:ident, $arg_:ident : $T:ty) => {
180 $arg.into()
181 };
182}
183
184impl<'a, Err> Requester for ErasedRequester<'a, Err>
185where
186 Err: std::error::Error + Send + AsResponseParameters,
187{
188 type Err = Err;
189
190 requester_forward! {
191 get_me,
192 log_out,
193 close,
194 get_updates,
195 set_webhook,
196 delete_webhook,
197 get_webhook_info,
198 forward_message,
199 forward_messages,
200 copy_message,
201 copy_messages,
202 send_message,
203 send_photo,
204 send_audio,
205 send_document,
206 send_video,
207 send_animation,
208 send_voice,
209 send_video_note,
210 send_paid_media,
211 send_media_group,
212 send_location,
213 edit_message_live_location,
214 edit_message_live_location_inline,
215 stop_message_live_location,
216 stop_message_live_location_inline,
217 edit_message_checklist,
218 send_venue,
219 send_contact,
220 send_poll,
221 send_checklist,
222 send_dice,
223 send_chat_action,
224 set_message_reaction,
225 get_user_profile_photos,
226 set_user_emoji_status,
227 get_file,
228 kick_chat_member,
229 ban_chat_member,
230 unban_chat_member,
231 restrict_chat_member,
232 promote_chat_member,
233 set_chat_administrator_custom_title,
234 ban_chat_sender_chat,
235 unban_chat_sender_chat,
236 set_chat_permissions,
237 export_chat_invite_link,
238 create_chat_invite_link,
239 edit_chat_invite_link,
240 create_chat_subscription_invite_link,
241 edit_chat_subscription_invite_link,
242 revoke_chat_invite_link,
243 set_chat_photo,
244 delete_chat_photo,
245 set_chat_title,
246 set_chat_description,
247 pin_chat_message,
248 unpin_chat_message,
249 unpin_all_chat_messages,
250 leave_chat,
251 get_chat,
252 get_chat_administrators,
253 get_chat_members_count,
254 get_chat_member_count,
255 get_chat_member,
256 set_chat_sticker_set,
257 delete_chat_sticker_set,
258 get_forum_topic_icon_stickers,
259 create_forum_topic,
260 edit_forum_topic,
261 close_forum_topic,
262 reopen_forum_topic,
263 delete_forum_topic,
264 unpin_all_forum_topic_messages,
265 edit_general_forum_topic,
266 close_general_forum_topic,
267 reopen_general_forum_topic,
268 hide_general_forum_topic,
269 unhide_general_forum_topic,
270 unpin_all_general_forum_topic_messages,
271 answer_callback_query,
272 get_user_chat_boosts,
273 set_my_commands,
274 get_business_connection,
275 get_my_commands,
276 set_my_name,
277 get_my_name,
278 set_my_description,
279 get_my_description,
280 set_my_short_description,
281 get_my_short_description,
282 set_chat_menu_button,
283 get_chat_menu_button,
284 set_my_default_administrator_rights,
285 get_my_default_administrator_rights,
286 delete_my_commands,
287 answer_inline_query,
288 answer_web_app_query,
289 save_prepared_inline_message,
290 edit_message_text,
291 edit_message_text_inline,
292 edit_message_caption,
293 edit_message_caption_inline,
294 edit_message_media,
295 edit_message_media_inline,
296 edit_message_reply_markup,
297 edit_message_reply_markup_inline,
298 stop_poll,
299 delete_message,
300 delete_messages,
301 send_sticker,
302 get_sticker_set,
303 get_custom_emoji_stickers,
304 upload_sticker_file,
305 create_new_sticker_set,
306 add_sticker_to_set,
307 set_sticker_position_in_set,
308 delete_sticker_from_set,
309 replace_sticker_in_set,
310 set_sticker_set_thumbnail,
311 set_custom_emoji_sticker_set_thumbnail,
312 set_sticker_set_title,
313 delete_sticker_set,
314 set_sticker_emoji_list,
315 set_sticker_keywords,
316 set_sticker_mask_position,
317 get_available_gifts,
318 send_gift,
319 send_gift_chat,
320 gift_premium_subscription,
321 verify_user,
322 verify_chat,
323 remove_user_verification,
324 remove_chat_verification,
325 read_business_message,
326 delete_business_messages,
327 set_business_account_name,
328 set_business_account_username,
329 set_business_account_bio,
330 set_business_account_profile_photo,
331 remove_business_account_profile_photo,
332 set_business_account_gift_settings,
333 get_business_account_star_balance,
334 transfer_business_account_stars,
335 get_business_account_gifts,
336 convert_gift_to_stars,
337 upgrade_gift,
338 transfer_gift,
339 post_story,
340 edit_story,
341 delete_story,
342 send_invoice,
343 create_invoice_link,
344 answer_shipping_query,
345 answer_pre_checkout_query,
346 get_my_star_balance,
347 get_star_transactions,
348 refund_star_payment,
349 edit_user_star_subscription,
350 set_passport_data_errors,
351 send_game,
352 set_game_score,
353 set_game_score_inline,
354 get_game_high_scores,
355 approve_chat_join_request,
356 decline_chat_join_request
357 => fwd_erased, fty
358 }
359}
360
361trait ErasableRequester<'a> {
363 type Err: std::error::Error + Send;
365
366 fn get_updates(&self) -> ErasedRequest<'a, GetUpdates, Self::Err>;
367
368 fn set_webhook(&self, url: Url) -> ErasedRequest<'a, SetWebhook, Self::Err>;
369
370 fn delete_webhook(&self) -> ErasedRequest<'a, DeleteWebhook, Self::Err>;
371
372 fn get_webhook_info(&self) -> ErasedRequest<'a, GetWebhookInfo, Self::Err>;
373
374 fn get_me(&self) -> ErasedRequest<'a, GetMe, Self::Err>;
375
376 fn log_out(&self) -> ErasedRequest<'a, LogOut, Self::Err>;
377
378 fn close(&self) -> ErasedRequest<'a, Close, Self::Err>;
379
380 fn send_message(
381 &self,
382 chat_id: Recipient,
383 text: String,
384 ) -> ErasedRequest<'a, SendMessage, Self::Err>;
385
386 fn forward_message(
387 &self,
388 chat_id: Recipient,
389 from_chat_id: Recipient,
390 message_id: MessageId,
391 ) -> ErasedRequest<'a, ForwardMessage, Self::Err>;
392
393 fn forward_messages(
394 &self,
395 chat_id: Recipient,
396 from_chat_id: Recipient,
397 message_ids: Vec<MessageId>,
398 ) -> ErasedRequest<'a, ForwardMessages, Self::Err>;
399
400 fn copy_message(
401 &self,
402 chat_id: Recipient,
403 from_chat_id: Recipient,
404 message_id: MessageId,
405 ) -> ErasedRequest<'a, CopyMessage, Self::Err>;
406
407 fn copy_messages(
408 &self,
409 chat_id: Recipient,
410 from_chat_id: Recipient,
411 message_ids: Vec<MessageId>,
412 ) -> ErasedRequest<'a, CopyMessages, Self::Err>;
413
414 fn send_photo(
415 &self,
416 chat_id: Recipient,
417 photo: InputFile,
418 ) -> ErasedRequest<'a, SendPhoto, Self::Err>;
419
420 fn send_audio(
421 &self,
422 chat_id: Recipient,
423 audio: InputFile,
424 ) -> ErasedRequest<'a, SendAudio, Self::Err>;
425
426 fn send_document(
427 &self,
428 chat_id: Recipient,
429 document: InputFile,
430 ) -> ErasedRequest<'a, SendDocument, Self::Err>;
431
432 fn send_video(
433 &self,
434 chat_id: Recipient,
435 video: InputFile,
436 ) -> ErasedRequest<'a, SendVideo, Self::Err>;
437
438 fn send_animation(
439 &self,
440 chat_id: Recipient,
441 animation: InputFile,
442 ) -> ErasedRequest<'a, SendAnimation, Self::Err>;
443
444 fn send_voice(
445 &self,
446 chat_id: Recipient,
447 voice: InputFile,
448 ) -> ErasedRequest<'a, SendVoice, Self::Err>;
449
450 fn send_video_note(
451 &self,
452 chat_id: Recipient,
453 video_note: InputFile,
454 ) -> ErasedRequest<'a, SendVideoNote, Self::Err>;
455
456 fn send_paid_media(
457 &self,
458 chat_id: Recipient,
459 star_count: u32,
460 media: Vec<InputPaidMedia>,
461 ) -> ErasedRequest<'a, SendPaidMedia, Self::Err>;
462
463 fn send_media_group(
464 &self,
465 chat_id: Recipient,
466 media: Vec<InputMedia>,
467 ) -> ErasedRequest<'a, SendMediaGroup, Self::Err>;
468
469 fn send_location(
470 &self,
471 chat_id: Recipient,
472 latitude: f64,
473 longitude: f64,
474 ) -> ErasedRequest<'a, SendLocation, Self::Err>;
475
476 fn edit_message_live_location(
477 &self,
478 chat_id: Recipient,
479 message_id: MessageId,
480 latitude: f64,
481 longitude: f64,
482 ) -> ErasedRequest<'a, EditMessageLiveLocation, Self::Err>;
483
484 fn edit_message_live_location_inline(
485 &self,
486 inline_message_id: String,
487 latitude: f64,
488 longitude: f64,
489 ) -> ErasedRequest<'a, EditMessageLiveLocationInline, Self::Err>;
490
491 fn stop_message_live_location(
492 &self,
493 chat_id: Recipient,
494 message_id: MessageId,
495 ) -> ErasedRequest<'a, StopMessageLiveLocation, Self::Err>;
496
497 fn stop_message_live_location_inline(
498 &self,
499 inline_message_id: String,
500 ) -> ErasedRequest<'a, StopMessageLiveLocationInline, Self::Err>;
501
502 fn edit_message_checklist(
503 &self,
504 business_connection_id: BusinessConnectionId,
505 chat_id: ChatId,
506 message_id: MessageId,
507 checklist: InputChecklist,
508 ) -> ErasedRequest<'a, EditMessageChecklist, Self::Err>;
509
510 fn send_venue(
511 &self,
512 chat_id: Recipient,
513 latitude: f64,
514 longitude: f64,
515 title: String,
516 address: String,
517 ) -> ErasedRequest<'a, SendVenue, Self::Err>;
518
519 fn send_contact(
520 &self,
521 chat_id: Recipient,
522 phone_number: String,
523 first_name: String,
524 ) -> ErasedRequest<'a, SendContact, Self::Err>;
525
526 fn send_poll(
527 &self,
528 chat_id: Recipient,
529 question: String,
530 options: Vec<InputPollOption>,
531 ) -> ErasedRequest<'a, SendPoll, Self::Err>;
532
533 fn send_checklist(
534 &self,
535 business_connection_id: BusinessConnectionId,
536 chat_id: ChatId,
537 checklist: InputChecklist,
538 ) -> ErasedRequest<'a, SendChecklist, Self::Err>;
539
540 fn send_dice(&self, chat_id: Recipient) -> ErasedRequest<'a, SendDice, Self::Err>;
541
542 fn send_chat_action(
543 &self,
544 chat_id: Recipient,
545 action: ChatAction,
546 ) -> ErasedRequest<'a, SendChatAction, Self::Err>;
547
548 fn set_message_reaction(
549 &self,
550 chat_id: Recipient,
551 message_id: MessageId,
552 ) -> ErasedRequest<'a, SetMessageReaction, Self::Err>;
553
554 fn get_user_profile_photos(
555 &self,
556 user_id: UserId,
557 ) -> ErasedRequest<'a, GetUserProfilePhotos, Self::Err>;
558
559 fn set_user_emoji_status(
560 &self,
561 user_id: UserId,
562 ) -> ErasedRequest<'a, SetUserEmojiStatus, Self::Err>;
563
564 fn get_file(&self, file_id: FileId) -> ErasedRequest<'a, GetFile, Self::Err>;
565
566 fn ban_chat_member(
567 &self,
568 chat_id: Recipient,
569 user_id: UserId,
570 ) -> ErasedRequest<'a, BanChatMember, Self::Err>;
571
572 fn kick_chat_member(
573 &self,
574 chat_id: Recipient,
575 user_id: UserId,
576 ) -> ErasedRequest<'a, KickChatMember, Self::Err>;
577
578 fn unban_chat_member(
579 &self,
580 chat_id: Recipient,
581 user_id: UserId,
582 ) -> ErasedRequest<'a, UnbanChatMember, Self::Err>;
583
584 fn restrict_chat_member(
585 &self,
586 chat_id: Recipient,
587 user_id: UserId,
588 permissions: ChatPermissions,
589 ) -> ErasedRequest<'a, RestrictChatMember, Self::Err>;
590
591 fn promote_chat_member(
592 &self,
593 chat_id: Recipient,
594 user_id: UserId,
595 ) -> ErasedRequest<'a, PromoteChatMember, Self::Err>;
596
597 fn set_chat_administrator_custom_title(
598 &self,
599 chat_id: Recipient,
600 user_id: UserId,
601 custom_title: String,
602 ) -> ErasedRequest<'a, SetChatAdministratorCustomTitle, Self::Err>;
603
604 fn ban_chat_sender_chat(
605 &self,
606 chat_id: Recipient,
607 sender_chat_id: ChatId,
608 ) -> ErasedRequest<'a, BanChatSenderChat, Self::Err>;
609
610 fn unban_chat_sender_chat(
611 &self,
612 chat_id: Recipient,
613 sender_chat_id: ChatId,
614 ) -> ErasedRequest<'a, UnbanChatSenderChat, Self::Err>;
615
616 fn set_chat_permissions(
617 &self,
618 chat_id: Recipient,
619 permissions: ChatPermissions,
620 ) -> ErasedRequest<'a, SetChatPermissions, Self::Err>;
621
622 fn export_chat_invite_link(
623 &self,
624 chat_id: Recipient,
625 ) -> ErasedRequest<'a, ExportChatInviteLink, Self::Err>;
626
627 fn create_chat_invite_link(
628 &self,
629 chat_id: Recipient,
630 ) -> ErasedRequest<'a, CreateChatInviteLink, Self::Err>;
631
632 fn edit_chat_invite_link(
633 &self,
634 chat_id: Recipient,
635 invite_link: String,
636 ) -> ErasedRequest<'a, EditChatInviteLink, Self::Err>;
637
638 fn create_chat_subscription_invite_link(
639 &self,
640 chat_id: Recipient,
641 subscription_period: Seconds,
642 subscription_price: u32,
643 ) -> ErasedRequest<'a, CreateChatSubscriptionInviteLink, Self::Err>;
644
645 fn edit_chat_subscription_invite_link(
646 &self,
647 chat_id: Recipient,
648 invite_link: String,
649 ) -> ErasedRequest<'a, EditChatSubscriptionInviteLink, Self::Err>;
650
651 fn revoke_chat_invite_link(
652 &self,
653 chat_id: Recipient,
654 invite_link: String,
655 ) -> ErasedRequest<'a, RevokeChatInviteLink, Self::Err>;
656
657 fn approve_chat_join_request(
659 &self,
660 chat_id: Recipient,
661 user_id: UserId,
662 ) -> ErasedRequest<'a, ApproveChatJoinRequest, Self::Err>;
663
664 fn decline_chat_join_request(
666 &self,
667 chat_id: Recipient,
668 user_id: UserId,
669 ) -> ErasedRequest<'a, DeclineChatJoinRequest, Self::Err>;
670
671 fn set_chat_photo(
672 &self,
673 chat_id: Recipient,
674 photo: InputFile,
675 ) -> ErasedRequest<'a, SetChatPhoto, Self::Err>;
676
677 fn delete_chat_photo(
678 &self,
679 chat_id: Recipient,
680 ) -> ErasedRequest<'a, DeleteChatPhoto, Self::Err>;
681
682 fn set_chat_title(
683 &self,
684 chat_id: Recipient,
685 title: String,
686 ) -> ErasedRequest<'a, SetChatTitle, Self::Err>;
687
688 fn set_chat_description(
689 &self,
690 chat_id: Recipient,
691 ) -> ErasedRequest<'a, SetChatDescription, Self::Err>;
692
693 fn pin_chat_message(
694 &self,
695 chat_id: Recipient,
696 message_id: MessageId,
697 ) -> ErasedRequest<'a, PinChatMessage, Self::Err>;
698
699 fn unpin_chat_message(
700 &self,
701 chat_id: Recipient,
702 ) -> ErasedRequest<'a, UnpinChatMessage, Self::Err>;
703
704 fn unpin_all_chat_messages(
705 &self,
706 chat_id: Recipient,
707 ) -> ErasedRequest<'a, UnpinAllChatMessages, Self::Err>;
708
709 fn leave_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, LeaveChat, Self::Err>;
710
711 fn get_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, GetChat, Self::Err>;
712
713 fn get_chat_administrators(
714 &self,
715 chat_id: Recipient,
716 ) -> ErasedRequest<'a, GetChatAdministrators, Self::Err>;
717
718 fn get_chat_member_count(
719 &self,
720 chat_id: Recipient,
721 ) -> ErasedRequest<'a, GetChatMemberCount, Self::Err>;
722
723 fn get_chat_members_count(
724 &self,
725 chat_id: Recipient,
726 ) -> ErasedRequest<'a, GetChatMembersCount, Self::Err>;
727
728 fn get_chat_member(
729 &self,
730 chat_id: Recipient,
731 user_id: UserId,
732 ) -> ErasedRequest<'a, GetChatMember, Self::Err>;
733
734 fn set_chat_sticker_set(
735 &self,
736 chat_id: Recipient,
737 sticker_set_name: String,
738 ) -> ErasedRequest<'a, SetChatStickerSet, Self::Err>;
739
740 fn delete_chat_sticker_set(
741 &self,
742 chat_id: Recipient,
743 ) -> ErasedRequest<'a, DeleteChatStickerSet, Self::Err>;
744
745 fn get_forum_topic_icon_stickers(
746 &self,
747 ) -> ErasedRequest<'a, GetForumTopicIconStickers, Self::Err>;
748
749 fn create_forum_topic(
750 &self,
751 chat_id: Recipient,
752 name: String,
753 ) -> ErasedRequest<'a, CreateForumTopic, Self::Err>;
754
755 fn edit_forum_topic(
756 &self,
757 chat_id: Recipient,
758 message_thread_id: ThreadId,
759 ) -> ErasedRequest<'a, EditForumTopic, Self::Err>;
760
761 fn close_forum_topic(
762 &self,
763 chat_id: Recipient,
764 message_thread_id: ThreadId,
765 ) -> ErasedRequest<'a, CloseForumTopic, Self::Err>;
766
767 fn reopen_forum_topic(
768 &self,
769 chat_id: Recipient,
770 message_thread_id: ThreadId,
771 ) -> ErasedRequest<'a, ReopenForumTopic, Self::Err>;
772
773 fn delete_forum_topic(
774 &self,
775 chat_id: Recipient,
776 message_thread_id: ThreadId,
777 ) -> ErasedRequest<'a, DeleteForumTopic, Self::Err>;
778
779 fn unpin_all_forum_topic_messages(
780 &self,
781 chat_id: Recipient,
782 message_thread_id: ThreadId,
783 ) -> ErasedRequest<'a, UnpinAllForumTopicMessages, Self::Err>;
784
785 fn edit_general_forum_topic(
786 &self,
787 chat_id: Recipient,
788 name: String,
789 ) -> ErasedRequest<'a, EditGeneralForumTopic, Self::Err>;
790
791 fn close_general_forum_topic(
792 &self,
793 chat_id: Recipient,
794 ) -> ErasedRequest<'a, CloseGeneralForumTopic, Self::Err>;
795
796 fn reopen_general_forum_topic(
797 &self,
798 chat_id: Recipient,
799 ) -> ErasedRequest<'a, ReopenGeneralForumTopic, Self::Err>;
800
801 fn hide_general_forum_topic(
802 &self,
803 chat_id: Recipient,
804 ) -> ErasedRequest<'a, HideGeneralForumTopic, Self::Err>;
805
806 fn unhide_general_forum_topic(
807 &self,
808 chat_id: Recipient,
809 ) -> ErasedRequest<'a, UnhideGeneralForumTopic, Self::Err>;
810
811 fn unpin_all_general_forum_topic_messages(
812 &self,
813 chat_id: Recipient,
814 ) -> ErasedRequest<'a, UnpinAllGeneralForumTopicMessages, Self::Err>;
815
816 fn answer_callback_query(
817 &self,
818 callback_query_id: CallbackQueryId,
819 ) -> ErasedRequest<'a, AnswerCallbackQuery, Self::Err>;
820
821 fn get_user_chat_boosts(
822 &self,
823 chat_id: Recipient,
824 user_id: UserId,
825 ) -> ErasedRequest<'a, GetUserChatBoosts, Self::Err>;
826
827 fn set_my_commands(
828 &self,
829 commands: Vec<BotCommand>,
830 ) -> ErasedRequest<'a, SetMyCommands, Self::Err>;
831
832 fn get_business_connection(
833 &self,
834 business_connection_id: BusinessConnectionId,
835 ) -> ErasedRequest<'a, GetBusinessConnection, Self::Err>;
836
837 fn get_my_commands(&self) -> ErasedRequest<'a, GetMyCommands, Self::Err>;
838
839 fn set_my_name(&self) -> ErasedRequest<'a, SetMyName, Self::Err>;
840
841 fn get_my_name(&self) -> ErasedRequest<'a, GetMyName, Self::Err>;
842
843 fn set_my_description(&self) -> ErasedRequest<'a, SetMyDescription, Self::Err>;
844
845 fn get_my_description(&self) -> ErasedRequest<'a, GetMyDescription, Self::Err>;
846
847 fn set_my_short_description(&self) -> ErasedRequest<'a, SetMyShortDescription, Self::Err>;
848
849 fn get_my_short_description(&self) -> ErasedRequest<'a, GetMyShortDescription, Self::Err>;
850
851 fn set_chat_menu_button(&self) -> ErasedRequest<'a, SetChatMenuButton, Self::Err>;
852
853 fn get_chat_menu_button(&self) -> ErasedRequest<'a, GetChatMenuButton, Self::Err>;
854
855 fn set_my_default_administrator_rights(
856 &self,
857 ) -> ErasedRequest<'a, SetMyDefaultAdministratorRights, Self::Err>;
858
859 fn get_my_default_administrator_rights(
860 &self,
861 ) -> ErasedRequest<'a, GetMyDefaultAdministratorRights, Self::Err>;
862
863 fn delete_my_commands(&self) -> ErasedRequest<'a, DeleteMyCommands, Self::Err>;
864
865 fn answer_inline_query(
866 &self,
867 inline_query_id: InlineQueryId,
868 results: Vec<InlineQueryResult>,
869 ) -> ErasedRequest<'a, AnswerInlineQuery, Self::Err>;
870
871 fn answer_web_app_query(
872 &self,
873 web_app_query_id: String,
874 result: InlineQueryResult,
875 ) -> ErasedRequest<'a, AnswerWebAppQuery, Self::Err>;
876
877 fn save_prepared_inline_message(
878 &self,
879 user_id: UserId,
880 result: InlineQueryResult,
881 ) -> ErasedRequest<'a, SavePreparedInlineMessage, Self::Err>;
882
883 fn edit_message_text(
884 &self,
885 chat_id: Recipient,
886 message_id: MessageId,
887 text: String,
888 ) -> ErasedRequest<'a, EditMessageText, Self::Err>;
889
890 fn edit_message_text_inline(
891 &self,
892 inline_message_id: String,
893 text: String,
894 ) -> ErasedRequest<'a, EditMessageTextInline, Self::Err>;
895
896 fn edit_message_caption(
897 &self,
898 chat_id: Recipient,
899 message_id: MessageId,
900 ) -> ErasedRequest<'a, EditMessageCaption, Self::Err>;
901
902 fn edit_message_caption_inline(
903 &self,
904 inline_message_id: String,
905 ) -> ErasedRequest<'a, EditMessageCaptionInline, Self::Err>;
906
907 fn edit_message_media(
908 &self,
909 chat_id: Recipient,
910 message_id: MessageId,
911 media: InputMedia,
912 ) -> ErasedRequest<'a, EditMessageMedia, Self::Err>;
913
914 fn edit_message_media_inline(
915 &self,
916 inline_message_id: String,
917 media: InputMedia,
918 ) -> ErasedRequest<'a, EditMessageMediaInline, Self::Err>;
919
920 fn edit_message_reply_markup(
921 &self,
922 chat_id: Recipient,
923 message_id: MessageId,
924 ) -> ErasedRequest<'a, EditMessageReplyMarkup, Self::Err>;
925
926 fn edit_message_reply_markup_inline(
927 &self,
928 inline_message_id: String,
929 ) -> ErasedRequest<'a, EditMessageReplyMarkupInline, Self::Err>;
930
931 fn stop_poll(
932 &self,
933 chat_id: Recipient,
934 message_id: MessageId,
935 ) -> ErasedRequest<'a, StopPoll, Self::Err>;
936
937 fn delete_message(
938 &self,
939 chat_id: Recipient,
940 message_id: MessageId,
941 ) -> ErasedRequest<'a, DeleteMessage, Self::Err>;
942
943 fn delete_messages(
944 &self,
945 chat_id: Recipient,
946 message_ids: Vec<MessageId>,
947 ) -> ErasedRequest<'a, DeleteMessages, Self::Err>;
948
949 fn send_sticker(
950 &self,
951 chat_id: Recipient,
952 sticker: InputFile,
953 ) -> ErasedRequest<'a, SendSticker, Self::Err>;
954
955 fn get_sticker_set(&self, name: String) -> ErasedRequest<'a, GetStickerSet, Self::Err>;
956
957 fn get_custom_emoji_stickers(
958 &self,
959 custom_emoji_ids: Vec<CustomEmojiId>,
960 ) -> ErasedRequest<'a, GetCustomEmojiStickers, Self::Err>;
961
962 fn upload_sticker_file(
963 &self,
964 user_id: UserId,
965 sticker: InputFile,
966 sticker_format: StickerFormat,
967 ) -> ErasedRequest<'a, UploadStickerFile, Self::Err>;
968
969 fn create_new_sticker_set(
970 &self,
971 user_id: UserId,
972 name: String,
973 title: String,
974 stickers: Vec<InputSticker>,
975 ) -> ErasedRequest<'a, CreateNewStickerSet, Self::Err>;
976
977 fn add_sticker_to_set(
978 &self,
979 user_id: UserId,
980 name: String,
981 sticker: InputSticker,
982 ) -> ErasedRequest<'a, AddStickerToSet, Self::Err>;
983
984 fn set_sticker_position_in_set(
985 &self,
986 sticker: String,
987 position: u32,
988 ) -> ErasedRequest<'a, SetStickerPositionInSet, Self::Err>;
989
990 fn delete_sticker_from_set(
991 &self,
992 sticker: String,
993 ) -> ErasedRequest<'a, DeleteStickerFromSet, Self::Err>;
994
995 fn replace_sticker_in_set(
996 &self,
997 user_id: UserId,
998 name: String,
999 old_sticker: String,
1000 sticker: InputSticker,
1001 ) -> ErasedRequest<'a, ReplaceStickerInSet, Self::Err>;
1002
1003 fn set_sticker_set_thumbnail(
1004 &self,
1005 name: String,
1006 user_id: UserId,
1007 format: StickerFormat,
1008 ) -> ErasedRequest<'a, SetStickerSetThumbnail, Self::Err>;
1009
1010 fn set_custom_emoji_sticker_set_thumbnail(
1011 &self,
1012 name: String,
1013 ) -> ErasedRequest<'a, SetCustomEmojiStickerSetThumbnail, Self::Err>;
1014
1015 fn set_sticker_set_title(
1016 &self,
1017 name: String,
1018 title: String,
1019 ) -> ErasedRequest<'a, SetStickerSetTitle, Self::Err>;
1020
1021 fn delete_sticker_set(&self, name: String) -> ErasedRequest<'a, DeleteStickerSet, Self::Err>;
1022
1023 fn set_sticker_emoji_list(
1024 &self,
1025 sticker: String,
1026 emoji_list: Vec<String>,
1027 ) -> ErasedRequest<'a, SetStickerEmojiList, Self::Err>;
1028
1029 fn set_sticker_keywords(
1030 &self,
1031 sticker: String,
1032 ) -> ErasedRequest<'a, SetStickerKeywords, Self::Err>;
1033
1034 fn set_sticker_mask_position(
1035 &self,
1036 sticker: String,
1037 ) -> ErasedRequest<'a, SetStickerMaskPosition, Self::Err>;
1038
1039 fn get_available_gifts(&self) -> ErasedRequest<'a, GetAvailableGifts, Self::Err>;
1040
1041 fn send_gift(&self, user_id: UserId, gift_id: GiftId)
1042 -> ErasedRequest<'a, SendGift, Self::Err>;
1043
1044 fn send_gift_chat(
1045 &self,
1046 chat_id: Recipient,
1047 gift_id: GiftId,
1048 ) -> ErasedRequest<'a, SendGiftChat, Self::Err>;
1049
1050 fn gift_premium_subscription(
1051 &self,
1052 user_id: UserId,
1053 month_count: u8,
1054 star_count: u32,
1055 ) -> ErasedRequest<'a, GiftPremiumSubscription, Self::Err>;
1056
1057 fn verify_user(&self, user_id: UserId) -> ErasedRequest<'a, VerifyUser, Self::Err>;
1058
1059 fn verify_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, VerifyChat, Self::Err>;
1060
1061 fn remove_user_verification(
1062 &self,
1063 user_id: UserId,
1064 ) -> ErasedRequest<'a, RemoveUserVerification, Self::Err>;
1065
1066 fn remove_chat_verification(
1067 &self,
1068 chat_id: Recipient,
1069 ) -> ErasedRequest<'a, RemoveChatVerification, Self::Err>;
1070
1071 fn read_business_message(
1072 &self,
1073 business_connection_id: BusinessConnectionId,
1074 chat_id: ChatId,
1075 message_id: MessageId,
1076 ) -> ErasedRequest<'a, ReadBusinessMessage, Self::Err>;
1077
1078 fn delete_business_messages(
1079 &self,
1080 business_connection_id: BusinessConnectionId,
1081 message_ids: Vec<MessageId>,
1082 ) -> ErasedRequest<'a, DeleteBusinessMessages, Self::Err>;
1083
1084 fn set_business_account_name(
1085 &self,
1086 business_connection_id: BusinessConnectionId,
1087 first_name: String,
1088 ) -> ErasedRequest<'a, SetBusinessAccountName, Self::Err>;
1089
1090 fn set_business_account_username(
1091 &self,
1092 business_connection_id: BusinessConnectionId,
1093 ) -> ErasedRequest<'a, SetBusinessAccountUsername, Self::Err>;
1094
1095 fn set_business_account_profile_photo(
1096 &self,
1097 business_connection_id: BusinessConnectionId,
1098 photo: InputProfilePhoto,
1099 ) -> ErasedRequest<'a, SetBusinessAccountProfilePhoto, Self::Err>;
1100
1101 fn remove_business_account_profile_photo(
1102 &self,
1103 business_connection_id: BusinessConnectionId,
1104 ) -> ErasedRequest<'a, RemoveBusinessAccountProfilePhoto, Self::Err>;
1105
1106 fn set_business_account_gift_settings(
1107 &self,
1108 business_connection_id: BusinessConnectionId,
1109 show_gift_button: bool,
1110 accepted_gift_types: AcceptedGiftTypes,
1111 ) -> ErasedRequest<'a, SetBusinessAccountGiftSettings, Self::Err>;
1112
1113 fn get_business_account_star_balance(
1114 &self,
1115 business_connection_id: BusinessConnectionId,
1116 ) -> ErasedRequest<'a, GetBusinessAccountStarBalance, Self::Err>;
1117
1118 fn transfer_business_account_stars(
1119 &self,
1120 business_connection_id: BusinessConnectionId,
1121 star_count: u32,
1122 ) -> ErasedRequest<'a, TransferBusinessAccountStars, Self::Err>;
1123
1124 fn get_business_account_gifts(
1125 &self,
1126 business_connection_id: BusinessConnectionId,
1127 ) -> ErasedRequest<'a, GetBusinessAccountGifts, Self::Err>;
1128
1129 fn convert_gift_to_stars(
1130 &self,
1131 business_connection_id: BusinessConnectionId,
1132 owned_gift_id: OwnedGiftId,
1133 ) -> ErasedRequest<'a, ConvertGiftToStars, Self::Err>;
1134
1135 fn upgrade_gift(
1136 &self,
1137 business_connection_id: BusinessConnectionId,
1138 owned_gift_id: OwnedGiftId,
1139 ) -> ErasedRequest<'a, UpgradeGift, Self::Err>;
1140
1141 fn transfer_gift(
1142 &self,
1143 business_connection_id: BusinessConnectionId,
1144 owned_gift_id: OwnedGiftId,
1145 new_owner_chat_id: ChatId,
1146 ) -> ErasedRequest<'a, TransferGift, Self::Err>;
1147
1148 fn post_story(
1149 &self,
1150 business_connection_id: BusinessConnectionId,
1151 content: InputStoryContent,
1152 active_period: Seconds,
1153 ) -> ErasedRequest<'a, PostStory, Self::Err>;
1154
1155 fn edit_story(
1156 &self,
1157 business_connection_id: BusinessConnectionId,
1158 story_id: StoryId,
1159 content: InputStoryContent,
1160 ) -> ErasedRequest<'a, EditStory, Self::Err>;
1161
1162 fn delete_story(
1163 &self,
1164 business_connection_id: BusinessConnectionId,
1165 story_id: StoryId,
1166 ) -> ErasedRequest<'a, DeleteStory, Self::Err>;
1167
1168 fn set_business_account_bio(
1169 &self,
1170 business_connection_id: BusinessConnectionId,
1171 ) -> ErasedRequest<'a, SetBusinessAccountBio, Self::Err>;
1172
1173 fn send_invoice(
1174 &self,
1175 chat_id: Recipient,
1176 title: String,
1177 description: String,
1178 payload: String,
1179 currency: String,
1180 prices: Vec<LabeledPrice>,
1181 ) -> ErasedRequest<'a, SendInvoice, Self::Err>;
1182
1183 fn create_invoice_link(
1184 &self,
1185 title: String,
1186 description: String,
1187 payload: String,
1188 currency: String,
1189 prices: Vec<LabeledPrice>,
1190 ) -> ErasedRequest<'a, CreateInvoiceLink, Self::Err>;
1191
1192 fn answer_shipping_query(
1193 &self,
1194 shipping_query_id: ShippingQueryId,
1195 ok: bool,
1196 ) -> ErasedRequest<'a, AnswerShippingQuery, Self::Err>;
1197
1198 fn answer_pre_checkout_query(
1199 &self,
1200 pre_checkout_query_id: PreCheckoutQueryId,
1201 ok: bool,
1202 ) -> ErasedRequest<'a, AnswerPreCheckoutQuery, Self::Err>;
1203
1204 fn get_my_star_balance(&self) -> ErasedRequest<'a, GetMyStarBalance, Self::Err>;
1205
1206 fn get_star_transactions(&self) -> ErasedRequest<'a, GetStarTransactions, Self::Err>;
1207
1208 fn refund_star_payment(
1209 &self,
1210 user_id: UserId,
1211 telegram_payment_charge_id: TelegramTransactionId,
1212 ) -> ErasedRequest<'a, RefundStarPayment, Self::Err>;
1213
1214 fn edit_user_star_subscription(
1215 &self,
1216 user_id: UserId,
1217 telegram_payment_charge_id: TelegramTransactionId,
1218 is_canceled: bool,
1219 ) -> ErasedRequest<'a, EditUserStarSubscription, Self::Err>;
1220
1221 fn set_passport_data_errors(
1222 &self,
1223 user_id: UserId,
1224 errors: Vec<PassportElementError>,
1225 ) -> ErasedRequest<'a, SetPassportDataErrors, Self::Err>;
1226
1227 fn send_game(
1228 &self,
1229 chat_id: ChatId,
1230 game_short_name: String,
1231 ) -> ErasedRequest<'a, SendGame, Self::Err>;
1232
1233 fn set_game_score(
1234 &self,
1235 user_id: UserId,
1236 score: u64,
1237 chat_id: u32,
1238 message_id: MessageId,
1239 ) -> ErasedRequest<'a, SetGameScore, Self::Err>;
1240
1241 fn set_game_score_inline(
1242 &self,
1243 user_id: UserId,
1244 score: u64,
1245 inline_message_id: String,
1246 ) -> ErasedRequest<'a, SetGameScoreInline, Self::Err>;
1247
1248 fn get_game_high_scores(
1249 &self,
1250 user_id: UserId,
1251 target: TargetMessage,
1252 ) -> ErasedRequest<'a, GetGameHighScores, Self::Err>;
1253}
1254
1255impl<'a, B> ErasableRequester<'a> for B
1256where
1257 B: Requester + 'a,
1258{
1259 type Err = B::Err;
1260
1261 fn get_updates(&self) -> ErasedRequest<'a, GetUpdates, Self::Err> {
1262 Requester::get_updates(self).erase()
1263 }
1264
1265 fn set_webhook(&self, url: Url) -> ErasedRequest<'a, SetWebhook, Self::Err> {
1266 Requester::set_webhook(self, url).erase()
1267 }
1268
1269 fn delete_webhook(&self) -> ErasedRequest<'a, DeleteWebhook, Self::Err> {
1270 Requester::delete_webhook(self).erase()
1271 }
1272
1273 fn get_webhook_info(&self) -> ErasedRequest<'a, GetWebhookInfo, Self::Err> {
1274 Requester::get_webhook_info(self).erase()
1275 }
1276
1277 fn get_me(&self) -> ErasedRequest<'a, GetMe, Self::Err> {
1278 Requester::get_me(self).erase()
1279 }
1280
1281 fn log_out(&self) -> ErasedRequest<'a, LogOut, Self::Err> {
1282 Requester::log_out(self).erase()
1283 }
1284
1285 fn close(&self) -> ErasedRequest<'a, Close, Self::Err> {
1286 Requester::close(self).erase()
1287 }
1288
1289 fn send_message(
1290 &self,
1291 chat_id: Recipient,
1292 text: String,
1293 ) -> ErasedRequest<'a, SendMessage, Self::Err> {
1294 Requester::send_message(self, chat_id, text).erase()
1295 }
1296
1297 fn forward_message(
1298 &self,
1299 chat_id: Recipient,
1300 from_chat_id: Recipient,
1301 message_id: MessageId,
1302 ) -> ErasedRequest<'a, ForwardMessage, Self::Err> {
1303 Requester::forward_message(self, chat_id, from_chat_id, message_id).erase()
1304 }
1305
1306 fn forward_messages(
1307 &self,
1308 chat_id: Recipient,
1309 from_chat_id: Recipient,
1310 message_ids: Vec<MessageId>,
1311 ) -> ErasedRequest<'a, ForwardMessages, Self::Err> {
1312 Requester::forward_messages(self, chat_id, from_chat_id, message_ids).erase()
1313 }
1314
1315 fn copy_message(
1316 &self,
1317 chat_id: Recipient,
1318 from_chat_id: Recipient,
1319 message_id: MessageId,
1320 ) -> ErasedRequest<'a, CopyMessage, Self::Err> {
1321 Requester::copy_message(self, chat_id, from_chat_id, message_id).erase()
1322 }
1323
1324 fn copy_messages(
1325 &self,
1326 chat_id: Recipient,
1327 from_chat_id: Recipient,
1328 message_ids: Vec<MessageId>,
1329 ) -> ErasedRequest<'a, CopyMessages, Self::Err> {
1330 Requester::copy_messages(self, chat_id, from_chat_id, message_ids).erase()
1331 }
1332
1333 fn send_photo(
1334 &self,
1335 chat_id: Recipient,
1336 photo: InputFile,
1337 ) -> ErasedRequest<'a, SendPhoto, Self::Err> {
1338 Requester::send_photo(self, chat_id, photo).erase()
1339 }
1340
1341 fn send_audio(
1342 &self,
1343 chat_id: Recipient,
1344 audio: InputFile,
1345 ) -> ErasedRequest<'a, SendAudio, Self::Err> {
1346 Requester::send_audio(self, chat_id, audio).erase()
1347 }
1348
1349 fn send_document(
1350 &self,
1351 chat_id: Recipient,
1352 document: InputFile,
1353 ) -> ErasedRequest<'a, SendDocument, Self::Err> {
1354 Requester::send_document(self, chat_id, document).erase()
1355 }
1356
1357 fn send_video(
1358 &self,
1359 chat_id: Recipient,
1360 video: InputFile,
1361 ) -> ErasedRequest<'a, SendVideo, Self::Err> {
1362 Requester::send_video(self, chat_id, video).erase()
1363 }
1364
1365 fn send_animation(
1366 &self,
1367 chat_id: Recipient,
1368 animation: InputFile,
1369 ) -> ErasedRequest<'a, SendAnimation, Self::Err> {
1370 Requester::send_animation(self, chat_id, animation).erase()
1371 }
1372
1373 fn send_voice(
1374 &self,
1375 chat_id: Recipient,
1376 voice: InputFile,
1377 ) -> ErasedRequest<'a, SendVoice, Self::Err> {
1378 Requester::send_voice(self, chat_id, voice).erase()
1379 }
1380
1381 fn send_video_note(
1382 &self,
1383 chat_id: Recipient,
1384 video_note: InputFile,
1385 ) -> ErasedRequest<'a, SendVideoNote, Self::Err> {
1386 Requester::send_video_note(self, chat_id, video_note).erase()
1387 }
1388
1389 fn send_paid_media(
1390 &self,
1391 chat_id: Recipient,
1392 star_count: u32,
1393 media: Vec<InputPaidMedia>,
1394 ) -> ErasedRequest<'a, SendPaidMedia, Self::Err> {
1395 Requester::send_paid_media(self, chat_id, star_count, media).erase()
1396 }
1397
1398 fn send_media_group(
1399 &self,
1400 chat_id: Recipient,
1401 media: Vec<InputMedia>,
1402 ) -> ErasedRequest<'a, SendMediaGroup, Self::Err> {
1403 Requester::send_media_group(self, chat_id, media).erase()
1404 }
1405
1406 fn send_location(
1407 &self,
1408 chat_id: Recipient,
1409 latitude: f64,
1410 longitude: f64,
1411 ) -> ErasedRequest<'a, SendLocation, Self::Err> {
1412 Requester::send_location(self, chat_id, latitude, longitude).erase()
1413 }
1414
1415 fn edit_message_live_location(
1416 &self,
1417 chat_id: Recipient,
1418 message_id: MessageId,
1419 latitude: f64,
1420 longitude: f64,
1421 ) -> ErasedRequest<'a, EditMessageLiveLocation, Self::Err> {
1422 Requester::edit_message_live_location(self, chat_id, message_id, latitude, longitude)
1423 .erase()
1424 }
1425
1426 fn edit_message_live_location_inline(
1427 &self,
1428 inline_message_id: String,
1429 latitude: f64,
1430 longitude: f64,
1431 ) -> ErasedRequest<'a, EditMessageLiveLocationInline, Self::Err> {
1432 Requester::edit_message_live_location_inline(self, inline_message_id, latitude, longitude)
1433 .erase()
1434 }
1435
1436 fn stop_message_live_location(
1437 &self,
1438 chat_id: Recipient,
1439 message_id: MessageId,
1440 ) -> ErasedRequest<'a, StopMessageLiveLocation, Self::Err> {
1441 Requester::stop_message_live_location(self, chat_id, message_id).erase()
1442 }
1443
1444 fn stop_message_live_location_inline(
1445 &self,
1446 inline_message_id: String,
1447 ) -> ErasedRequest<'a, StopMessageLiveLocationInline, Self::Err> {
1448 Requester::stop_message_live_location_inline(self, inline_message_id).erase()
1449 }
1450
1451 fn edit_message_checklist(
1452 &self,
1453 business_connection_id: BusinessConnectionId,
1454 chat_id: ChatId,
1455 message_id: MessageId,
1456 checklist: InputChecklist,
1457 ) -> ErasedRequest<'a, EditMessageChecklist, Self::Err> {
1458 Requester::edit_message_checklist(
1459 self,
1460 business_connection_id,
1461 chat_id,
1462 message_id,
1463 checklist,
1464 )
1465 .erase()
1466 }
1467
1468 fn send_venue(
1469 &self,
1470 chat_id: Recipient,
1471 latitude: f64,
1472 longitude: f64,
1473 title: String,
1474 address: String,
1475 ) -> ErasedRequest<'a, SendVenue, Self::Err> {
1476 Requester::send_venue(self, chat_id, latitude, longitude, title, address).erase()
1477 }
1478
1479 fn send_contact(
1480 &self,
1481 chat_id: Recipient,
1482 phone_number: String,
1483 first_name: String,
1484 ) -> ErasedRequest<'a, SendContact, Self::Err> {
1485 Requester::send_contact(self, chat_id, phone_number, first_name).erase()
1486 }
1487
1488 fn send_poll(
1489 &self,
1490 chat_id: Recipient,
1491 question: String,
1492 options: Vec<InputPollOption>,
1493 ) -> ErasedRequest<'a, SendPoll, Self::Err> {
1494 Requester::send_poll(self, chat_id, question, options).erase()
1495 }
1496
1497 fn send_checklist(
1498 &self,
1499 business_connection_id: BusinessConnectionId,
1500 chat_id: ChatId,
1501 checklist: InputChecklist,
1502 ) -> ErasedRequest<'a, SendChecklist, Self::Err> {
1503 Requester::send_checklist(self, business_connection_id, chat_id, checklist).erase()
1504 }
1505
1506 fn send_dice(&self, chat_id: Recipient) -> ErasedRequest<'a, SendDice, Self::Err> {
1507 Requester::send_dice(self, chat_id).erase()
1508 }
1509
1510 fn send_chat_action(
1511 &self,
1512 chat_id: Recipient,
1513 action: ChatAction,
1514 ) -> ErasedRequest<'a, SendChatAction, Self::Err> {
1515 Requester::send_chat_action(self, chat_id, action).erase()
1516 }
1517
1518 fn set_message_reaction(
1519 &self,
1520 chat_id: Recipient,
1521 message_id: MessageId,
1522 ) -> ErasedRequest<'a, SetMessageReaction, Self::Err> {
1523 Requester::set_message_reaction(self, chat_id, message_id).erase()
1524 }
1525
1526 fn get_user_profile_photos(
1527 &self,
1528 user_id: UserId,
1529 ) -> ErasedRequest<'a, GetUserProfilePhotos, Self::Err> {
1530 Requester::get_user_profile_photos(self, user_id).erase()
1531 }
1532
1533 fn set_user_emoji_status(
1534 &self,
1535 user_id: UserId,
1536 ) -> ErasedRequest<'a, SetUserEmojiStatus, Self::Err> {
1537 Requester::set_user_emoji_status(self, user_id).erase()
1538 }
1539
1540 fn get_file(&self, file_id: FileId) -> ErasedRequest<'a, GetFile, Self::Err> {
1541 Requester::get_file(self, file_id).erase()
1542 }
1543
1544 fn ban_chat_member(
1545 &self,
1546 chat_id: Recipient,
1547 user_id: UserId,
1548 ) -> ErasedRequest<'a, BanChatMember, Self::Err> {
1549 Requester::ban_chat_member(self, chat_id, user_id).erase()
1550 }
1551
1552 fn kick_chat_member(
1553 &self,
1554 chat_id: Recipient,
1555 user_id: UserId,
1556 ) -> ErasedRequest<'a, KickChatMember, Self::Err> {
1557 Requester::kick_chat_member(self, chat_id, user_id).erase()
1558 }
1559
1560 fn unban_chat_member(
1561 &self,
1562 chat_id: Recipient,
1563 user_id: UserId,
1564 ) -> ErasedRequest<'a, UnbanChatMember, Self::Err> {
1565 Requester::unban_chat_member(self, chat_id, user_id).erase()
1566 }
1567
1568 fn restrict_chat_member(
1569 &self,
1570 chat_id: Recipient,
1571 user_id: UserId,
1572 permissions: ChatPermissions,
1573 ) -> ErasedRequest<'a, RestrictChatMember, Self::Err> {
1574 Requester::restrict_chat_member(self, chat_id, user_id, permissions).erase()
1575 }
1576
1577 fn promote_chat_member(
1578 &self,
1579 chat_id: Recipient,
1580 user_id: UserId,
1581 ) -> ErasedRequest<'a, PromoteChatMember, Self::Err> {
1582 Requester::promote_chat_member(self, chat_id, user_id).erase()
1583 }
1584
1585 fn set_chat_administrator_custom_title(
1586 &self,
1587 chat_id: Recipient,
1588 user_id: UserId,
1589 custom_title: String,
1590 ) -> ErasedRequest<'a, SetChatAdministratorCustomTitle, Self::Err> {
1591 Requester::set_chat_administrator_custom_title(self, chat_id, user_id, custom_title).erase()
1592 }
1593
1594 fn ban_chat_sender_chat(
1595 &self,
1596 chat_id: Recipient,
1597 sender_chat_id: ChatId,
1598 ) -> ErasedRequest<'a, BanChatSenderChat, Self::Err> {
1599 Requester::ban_chat_sender_chat(self, chat_id, sender_chat_id).erase()
1600 }
1601
1602 fn unban_chat_sender_chat(
1603 &self,
1604 chat_id: Recipient,
1605 sender_chat_id: ChatId,
1606 ) -> ErasedRequest<'a, UnbanChatSenderChat, Self::Err> {
1607 Requester::unban_chat_sender_chat(self, chat_id, sender_chat_id).erase()
1608 }
1609
1610 fn set_chat_permissions(
1611 &self,
1612 chat_id: Recipient,
1613 permissions: ChatPermissions,
1614 ) -> ErasedRequest<'a, SetChatPermissions, Self::Err> {
1615 Requester::set_chat_permissions(self, chat_id, permissions).erase()
1616 }
1617
1618 fn export_chat_invite_link(
1619 &self,
1620 chat_id: Recipient,
1621 ) -> ErasedRequest<'a, ExportChatInviteLink, Self::Err> {
1622 Requester::export_chat_invite_link(self, chat_id).erase()
1623 }
1624
1625 fn create_chat_invite_link(
1626 &self,
1627 chat_id: Recipient,
1628 ) -> ErasedRequest<'a, CreateChatInviteLink, Self::Err> {
1629 Requester::create_chat_invite_link(self, chat_id).erase()
1630 }
1631
1632 fn edit_chat_invite_link(
1633 &self,
1634 chat_id: Recipient,
1635 invite_link: String,
1636 ) -> ErasedRequest<'a, EditChatInviteLink, Self::Err> {
1637 Requester::edit_chat_invite_link(self, chat_id, invite_link).erase()
1638 }
1639
1640 fn create_chat_subscription_invite_link(
1641 &self,
1642 chat_id: Recipient,
1643 subscription_period: Seconds,
1644 subscription_price: u32,
1645 ) -> ErasedRequest<'a, CreateChatSubscriptionInviteLink, Self::Err> {
1646 Requester::create_chat_subscription_invite_link(
1647 self,
1648 chat_id,
1649 subscription_period,
1650 subscription_price,
1651 )
1652 .erase()
1653 }
1654
1655 fn edit_chat_subscription_invite_link(
1656 &self,
1657 chat_id: Recipient,
1658 invite_link: String,
1659 ) -> ErasedRequest<'a, EditChatSubscriptionInviteLink, Self::Err> {
1660 Requester::edit_chat_subscription_invite_link(self, chat_id, invite_link).erase()
1661 }
1662
1663 fn revoke_chat_invite_link(
1664 &self,
1665 chat_id: Recipient,
1666 invite_link: String,
1667 ) -> ErasedRequest<'a, RevokeChatInviteLink, Self::Err> {
1668 Requester::revoke_chat_invite_link(self, chat_id, invite_link).erase()
1669 }
1670
1671 fn approve_chat_join_request(
1673 &self,
1674 chat_id: Recipient,
1675 user_id: UserId,
1676 ) -> ErasedRequest<'a, ApproveChatJoinRequest, Self::Err> {
1677 Requester::approve_chat_join_request(self, chat_id, user_id).erase()
1678 }
1679
1680 fn decline_chat_join_request(
1682 &self,
1683 chat_id: Recipient,
1684 user_id: UserId,
1685 ) -> ErasedRequest<'a, DeclineChatJoinRequest, Self::Err> {
1686 Requester::decline_chat_join_request(self, chat_id, user_id).erase()
1687 }
1688
1689 fn set_chat_photo(
1690 &self,
1691 chat_id: Recipient,
1692 photo: InputFile,
1693 ) -> ErasedRequest<'a, SetChatPhoto, Self::Err> {
1694 Requester::set_chat_photo(self, chat_id, photo).erase()
1695 }
1696
1697 fn delete_chat_photo(
1698 &self,
1699 chat_id: Recipient,
1700 ) -> ErasedRequest<'a, DeleteChatPhoto, Self::Err> {
1701 Requester::delete_chat_photo(self, chat_id).erase()
1702 }
1703
1704 fn set_chat_title(
1705 &self,
1706 chat_id: Recipient,
1707 title: String,
1708 ) -> ErasedRequest<'a, SetChatTitle, Self::Err> {
1709 Requester::set_chat_title(self, chat_id, title).erase()
1710 }
1711
1712 fn set_chat_description(
1713 &self,
1714 chat_id: Recipient,
1715 ) -> ErasedRequest<'a, SetChatDescription, Self::Err> {
1716 Requester::set_chat_description(self, chat_id).erase()
1717 }
1718
1719 fn pin_chat_message(
1720 &self,
1721 chat_id: Recipient,
1722 message_id: MessageId,
1723 ) -> ErasedRequest<'a, PinChatMessage, Self::Err> {
1724 Requester::pin_chat_message(self, chat_id, message_id).erase()
1725 }
1726
1727 fn unpin_chat_message(
1728 &self,
1729 chat_id: Recipient,
1730 ) -> ErasedRequest<'a, UnpinChatMessage, Self::Err> {
1731 Requester::unpin_chat_message(self, chat_id).erase()
1732 }
1733
1734 fn unpin_all_chat_messages(
1735 &self,
1736 chat_id: Recipient,
1737 ) -> ErasedRequest<'a, UnpinAllChatMessages, Self::Err> {
1738 Requester::unpin_all_chat_messages(self, chat_id).erase()
1739 }
1740
1741 fn leave_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, LeaveChat, Self::Err> {
1742 Requester::leave_chat(self, chat_id).erase()
1743 }
1744
1745 fn get_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, GetChat, Self::Err> {
1746 Requester::get_chat(self, chat_id).erase()
1747 }
1748
1749 fn get_chat_administrators(
1750 &self,
1751 chat_id: Recipient,
1752 ) -> ErasedRequest<'a, GetChatAdministrators, Self::Err> {
1753 Requester::get_chat_administrators(self, chat_id).erase()
1754 }
1755
1756 fn get_chat_member_count(
1757 &self,
1758 chat_id: Recipient,
1759 ) -> ErasedRequest<'a, GetChatMemberCount, Self::Err> {
1760 Requester::get_chat_member_count(self, chat_id).erase()
1761 }
1762
1763 fn get_chat_members_count(
1764 &self,
1765 chat_id: Recipient,
1766 ) -> ErasedRequest<'a, GetChatMembersCount, Self::Err> {
1767 Requester::get_chat_members_count(self, chat_id).erase()
1768 }
1769
1770 fn get_chat_member(
1771 &self,
1772 chat_id: Recipient,
1773 user_id: UserId,
1774 ) -> ErasedRequest<'a, GetChatMember, Self::Err> {
1775 Requester::get_chat_member(self, chat_id, user_id).erase()
1776 }
1777
1778 fn set_chat_sticker_set(
1779 &self,
1780 chat_id: Recipient,
1781 sticker_set_name: String,
1782 ) -> ErasedRequest<'a, SetChatStickerSet, Self::Err> {
1783 Requester::set_chat_sticker_set(self, chat_id, sticker_set_name).erase()
1784 }
1785
1786 fn delete_chat_sticker_set(
1787 &self,
1788 chat_id: Recipient,
1789 ) -> ErasedRequest<'a, DeleteChatStickerSet, Self::Err> {
1790 Requester::delete_chat_sticker_set(self, chat_id).erase()
1791 }
1792
1793 fn get_forum_topic_icon_stickers(
1794 &self,
1795 ) -> ErasedRequest<'a, GetForumTopicIconStickers, Self::Err> {
1796 Requester::get_forum_topic_icon_stickers(self).erase()
1797 }
1798
1799 fn create_forum_topic(
1800 &self,
1801 chat_id: Recipient,
1802 name: String,
1803 ) -> ErasedRequest<'a, CreateForumTopic, Self::Err> {
1804 Requester::create_forum_topic(self, chat_id, name).erase()
1805 }
1806
1807 fn edit_forum_topic(
1808 &self,
1809 chat_id: Recipient,
1810 message_thread_id: ThreadId,
1811 ) -> ErasedRequest<'a, EditForumTopic, Self::Err> {
1812 Requester::edit_forum_topic(self, chat_id, message_thread_id).erase()
1813 }
1814
1815 fn close_forum_topic(
1816 &self,
1817 chat_id: Recipient,
1818 message_thread_id: ThreadId,
1819 ) -> ErasedRequest<'a, CloseForumTopic, Self::Err> {
1820 Requester::close_forum_topic(self, chat_id, message_thread_id).erase()
1821 }
1822
1823 fn reopen_forum_topic(
1824 &self,
1825 chat_id: Recipient,
1826 message_thread_id: ThreadId,
1827 ) -> ErasedRequest<'a, ReopenForumTopic, Self::Err> {
1828 Requester::reopen_forum_topic(self, chat_id, message_thread_id).erase()
1829 }
1830
1831 fn delete_forum_topic(
1832 &self,
1833 chat_id: Recipient,
1834 message_thread_id: ThreadId,
1835 ) -> ErasedRequest<'a, DeleteForumTopic, Self::Err> {
1836 Requester::delete_forum_topic(self, chat_id, message_thread_id).erase()
1837 }
1838
1839 fn unpin_all_forum_topic_messages(
1840 &self,
1841 chat_id: Recipient,
1842 message_thread_id: ThreadId,
1843 ) -> ErasedRequest<'a, UnpinAllForumTopicMessages, Self::Err> {
1844 Requester::unpin_all_forum_topic_messages(self, chat_id, message_thread_id).erase()
1845 }
1846
1847 fn edit_general_forum_topic(
1848 &self,
1849 chat_id: Recipient,
1850 name: String,
1851 ) -> ErasedRequest<'a, EditGeneralForumTopic, Self::Err> {
1852 Requester::edit_general_forum_topic(self, chat_id, name).erase()
1853 }
1854
1855 fn close_general_forum_topic(
1856 &self,
1857 chat_id: Recipient,
1858 ) -> ErasedRequest<'a, CloseGeneralForumTopic, Self::Err> {
1859 Requester::close_general_forum_topic(self, chat_id).erase()
1860 }
1861
1862 fn reopen_general_forum_topic(
1863 &self,
1864 chat_id: Recipient,
1865 ) -> ErasedRequest<'a, ReopenGeneralForumTopic, Self::Err> {
1866 Requester::reopen_general_forum_topic(self, chat_id).erase()
1867 }
1868
1869 fn hide_general_forum_topic(
1870 &self,
1871 chat_id: Recipient,
1872 ) -> ErasedRequest<'a, HideGeneralForumTopic, Self::Err> {
1873 Requester::hide_general_forum_topic(self, chat_id).erase()
1874 }
1875
1876 fn unhide_general_forum_topic(
1877 &self,
1878 chat_id: Recipient,
1879 ) -> ErasedRequest<'a, UnhideGeneralForumTopic, Self::Err> {
1880 Requester::unhide_general_forum_topic(self, chat_id).erase()
1881 }
1882
1883 fn unpin_all_general_forum_topic_messages(
1884 &self,
1885 chat_id: Recipient,
1886 ) -> ErasedRequest<'a, UnpinAllGeneralForumTopicMessages, Self::Err> {
1887 Requester::unpin_all_general_forum_topic_messages(self, chat_id).erase()
1888 }
1889
1890 fn answer_callback_query(
1891 &self,
1892 callback_query_id: CallbackQueryId,
1893 ) -> ErasedRequest<'a, AnswerCallbackQuery, Self::Err> {
1894 Requester::answer_callback_query(self, callback_query_id).erase()
1895 }
1896
1897 fn get_user_chat_boosts(
1898 &self,
1899 chat_id: Recipient,
1900 user_id: UserId,
1901 ) -> ErasedRequest<'a, GetUserChatBoosts, Self::Err> {
1902 Requester::get_user_chat_boosts(self, chat_id, user_id).erase()
1903 }
1904
1905 fn set_my_commands(
1906 &self,
1907 commands: Vec<BotCommand>,
1908 ) -> ErasedRequest<'a, SetMyCommands, Self::Err> {
1909 Requester::set_my_commands(self, commands).erase()
1910 }
1911
1912 fn get_business_connection(
1913 &self,
1914 business_connection_id: BusinessConnectionId,
1915 ) -> ErasedRequest<'a, GetBusinessConnection, Self::Err> {
1916 Requester::get_business_connection(self, business_connection_id).erase()
1917 }
1918
1919 fn get_my_commands(&self) -> ErasedRequest<'a, GetMyCommands, Self::Err> {
1920 Requester::get_my_commands(self).erase()
1921 }
1922
1923 fn set_my_name(&self) -> ErasedRequest<'a, SetMyName, Self::Err> {
1924 Requester::set_my_name(self).erase()
1925 }
1926
1927 fn get_my_name(&self) -> ErasedRequest<'a, GetMyName, Self::Err> {
1928 Requester::get_my_name(self).erase()
1929 }
1930
1931 fn set_my_description(&self) -> ErasedRequest<'a, SetMyDescription, Self::Err> {
1932 Requester::set_my_description(self).erase()
1933 }
1934
1935 fn get_my_description(&self) -> ErasedRequest<'a, GetMyDescription, Self::Err> {
1936 Requester::get_my_description(self).erase()
1937 }
1938
1939 fn set_my_short_description(&self) -> ErasedRequest<'a, SetMyShortDescription, Self::Err> {
1940 Requester::set_my_short_description(self).erase()
1941 }
1942
1943 fn get_my_short_description(&self) -> ErasedRequest<'a, GetMyShortDescription, Self::Err> {
1944 Requester::get_my_short_description(self).erase()
1945 }
1946
1947 fn set_chat_menu_button(&self) -> ErasedRequest<'a, SetChatMenuButton, Self::Err> {
1948 Requester::set_chat_menu_button(self).erase()
1949 }
1950
1951 fn get_chat_menu_button(&self) -> ErasedRequest<'a, GetChatMenuButton, Self::Err> {
1952 Requester::get_chat_menu_button(self).erase()
1953 }
1954
1955 fn set_my_default_administrator_rights(
1956 &self,
1957 ) -> ErasedRequest<'a, SetMyDefaultAdministratorRights, Self::Err> {
1958 Requester::set_my_default_administrator_rights(self).erase()
1959 }
1960
1961 fn get_my_default_administrator_rights(
1962 &self,
1963 ) -> ErasedRequest<'a, GetMyDefaultAdministratorRights, Self::Err> {
1964 Requester::get_my_default_administrator_rights(self).erase()
1965 }
1966
1967 fn delete_my_commands(&self) -> ErasedRequest<'a, DeleteMyCommands, Self::Err> {
1968 Requester::delete_my_commands(self).erase()
1969 }
1970
1971 fn answer_inline_query(
1972 &self,
1973 inline_query_id: InlineQueryId,
1974 results: Vec<InlineQueryResult>,
1975 ) -> ErasedRequest<'a, AnswerInlineQuery, Self::Err> {
1976 Requester::answer_inline_query(self, inline_query_id, results).erase()
1977 }
1978
1979 fn answer_web_app_query(
1980 &self,
1981 web_app_query_id: String,
1982 result: InlineQueryResult,
1983 ) -> ErasedRequest<'a, AnswerWebAppQuery, Self::Err> {
1984 Requester::answer_web_app_query(self, web_app_query_id, result).erase()
1985 }
1986
1987 fn save_prepared_inline_message(
1988 &self,
1989 user_id: UserId,
1990 result: InlineQueryResult,
1991 ) -> ErasedRequest<'a, SavePreparedInlineMessage, Self::Err> {
1992 Requester::save_prepared_inline_message(self, user_id, result).erase()
1993 }
1994
1995 fn edit_message_text(
1996 &self,
1997 chat_id: Recipient,
1998 message_id: MessageId,
1999 text: String,
2000 ) -> ErasedRequest<'a, EditMessageText, Self::Err> {
2001 Requester::edit_message_text(self, chat_id, message_id, text).erase()
2002 }
2003
2004 fn edit_message_text_inline(
2005 &self,
2006 inline_message_id: String,
2007 text: String,
2008 ) -> ErasedRequest<'a, EditMessageTextInline, Self::Err> {
2009 Requester::edit_message_text_inline(self, inline_message_id, text).erase()
2010 }
2011
2012 fn edit_message_caption(
2013 &self,
2014 chat_id: Recipient,
2015 message_id: MessageId,
2016 ) -> ErasedRequest<'a, EditMessageCaption, Self::Err> {
2017 Requester::edit_message_caption(self, chat_id, message_id).erase()
2018 }
2019
2020 fn edit_message_caption_inline(
2021 &self,
2022 inline_message_id: String,
2023 ) -> ErasedRequest<'a, EditMessageCaptionInline, Self::Err> {
2024 Requester::edit_message_caption_inline(self, inline_message_id).erase()
2025 }
2026
2027 fn edit_message_media(
2028 &self,
2029 chat_id: Recipient,
2030 message_id: MessageId,
2031 media: InputMedia,
2032 ) -> ErasedRequest<'a, EditMessageMedia, Self::Err> {
2033 Requester::edit_message_media(self, chat_id, message_id, media).erase()
2034 }
2035
2036 fn edit_message_media_inline(
2037 &self,
2038 inline_message_id: String,
2039 media: InputMedia,
2040 ) -> ErasedRequest<'a, EditMessageMediaInline, Self::Err> {
2041 Requester::edit_message_media_inline(self, inline_message_id, media).erase()
2042 }
2043
2044 fn edit_message_reply_markup(
2045 &self,
2046 chat_id: Recipient,
2047 message_id: MessageId,
2048 ) -> ErasedRequest<'a, EditMessageReplyMarkup, Self::Err> {
2049 Requester::edit_message_reply_markup(self, chat_id, message_id).erase()
2050 }
2051
2052 fn edit_message_reply_markup_inline(
2053 &self,
2054 inline_message_id: String,
2055 ) -> ErasedRequest<'a, EditMessageReplyMarkupInline, Self::Err> {
2056 Requester::edit_message_reply_markup_inline(self, inline_message_id).erase()
2057 }
2058
2059 fn stop_poll(
2060 &self,
2061 chat_id: Recipient,
2062 message_id: MessageId,
2063 ) -> ErasedRequest<'a, StopPoll, Self::Err> {
2064 Requester::stop_poll(self, chat_id, message_id).erase()
2065 }
2066
2067 fn delete_message(
2068 &self,
2069 chat_id: Recipient,
2070 message_id: MessageId,
2071 ) -> ErasedRequest<'a, DeleteMessage, Self::Err> {
2072 Requester::delete_message(self, chat_id, message_id).erase()
2073 }
2074
2075 fn delete_messages(
2076 &self,
2077 chat_id: Recipient,
2078 message_ids: Vec<MessageId>,
2079 ) -> ErasedRequest<'a, DeleteMessages, Self::Err> {
2080 Requester::delete_messages(self, chat_id, message_ids).erase()
2081 }
2082
2083 fn send_sticker(
2084 &self,
2085 chat_id: Recipient,
2086 sticker: InputFile,
2087 ) -> ErasedRequest<'a, SendSticker, Self::Err> {
2088 Requester::send_sticker(self, chat_id, sticker).erase()
2089 }
2090
2091 fn get_sticker_set(&self, name: String) -> ErasedRequest<'a, GetStickerSet, Self::Err> {
2092 Requester::get_sticker_set(self, name).erase()
2093 }
2094
2095 fn get_custom_emoji_stickers(
2096 &self,
2097 custom_emoji_ids: Vec<CustomEmojiId>,
2098 ) -> ErasedRequest<'a, GetCustomEmojiStickers, Self::Err> {
2099 Requester::get_custom_emoji_stickers(self, custom_emoji_ids).erase()
2100 }
2101
2102 fn upload_sticker_file(
2103 &self,
2104 user_id: UserId,
2105 sticker: InputFile,
2106 sticker_format: StickerFormat,
2107 ) -> ErasedRequest<'a, UploadStickerFile, Self::Err> {
2108 Requester::upload_sticker_file(self, user_id, sticker, sticker_format).erase()
2109 }
2110
2111 fn create_new_sticker_set(
2112 &self,
2113 user_id: UserId,
2114 name: String,
2115 title: String,
2116 stickers: Vec<InputSticker>,
2117 ) -> ErasedRequest<'a, CreateNewStickerSet, Self::Err> {
2118 Requester::create_new_sticker_set(self, user_id, name, title, stickers).erase()
2119 }
2120
2121 fn add_sticker_to_set(
2122 &self,
2123 user_id: UserId,
2124 name: String,
2125 sticker: InputSticker,
2126 ) -> ErasedRequest<'a, AddStickerToSet, Self::Err> {
2127 Requester::add_sticker_to_set(self, user_id, name, sticker).erase()
2128 }
2129
2130 fn set_sticker_position_in_set(
2131 &self,
2132 sticker: String,
2133 position: u32,
2134 ) -> ErasedRequest<'a, SetStickerPositionInSet, Self::Err> {
2135 Requester::set_sticker_position_in_set(self, sticker, position).erase()
2136 }
2137
2138 fn delete_sticker_from_set(
2139 &self,
2140 sticker: String,
2141 ) -> ErasedRequest<'a, DeleteStickerFromSet, Self::Err> {
2142 Requester::delete_sticker_from_set(self, sticker).erase()
2143 }
2144
2145 fn replace_sticker_in_set(
2146 &self,
2147 user_id: UserId,
2148 name: String,
2149 old_sticker: String,
2150 sticker: InputSticker,
2151 ) -> ErasedRequest<'a, ReplaceStickerInSet, Self::Err> {
2152 Requester::replace_sticker_in_set(self, user_id, name, old_sticker, sticker).erase()
2153 }
2154
2155 fn set_sticker_set_thumbnail(
2156 &self,
2157 name: String,
2158 user_id: UserId,
2159 format: StickerFormat,
2160 ) -> ErasedRequest<'a, SetStickerSetThumbnail, Self::Err> {
2161 Requester::set_sticker_set_thumbnail(self, name, user_id, format).erase()
2162 }
2163
2164 fn set_custom_emoji_sticker_set_thumbnail(
2165 &self,
2166 name: String,
2167 ) -> ErasedRequest<'a, SetCustomEmojiStickerSetThumbnail, Self::Err> {
2168 Requester::set_custom_emoji_sticker_set_thumbnail(self, name).erase()
2169 }
2170
2171 fn set_sticker_set_title(
2172 &self,
2173 name: String,
2174 title: String,
2175 ) -> ErasedRequest<'a, SetStickerSetTitle, Self::Err> {
2176 Requester::set_sticker_set_title(self, name, title).erase()
2177 }
2178
2179 fn delete_sticker_set(&self, name: String) -> ErasedRequest<'a, DeleteStickerSet, Self::Err> {
2180 Requester::delete_sticker_set(self, name).erase()
2181 }
2182
2183 fn set_sticker_emoji_list(
2184 &self,
2185 sticker: String,
2186 emoji_list: Vec<String>,
2187 ) -> ErasedRequest<'a, SetStickerEmojiList, Self::Err> {
2188 Requester::set_sticker_emoji_list(self, sticker, emoji_list).erase()
2189 }
2190
2191 fn set_sticker_keywords(
2192 &self,
2193 sticker: String,
2194 ) -> ErasedRequest<'a, SetStickerKeywords, Self::Err> {
2195 Requester::set_sticker_keywords(self, sticker).erase()
2196 }
2197
2198 fn set_sticker_mask_position(
2199 &self,
2200 sticker: String,
2201 ) -> ErasedRequest<'a, SetStickerMaskPosition, Self::Err> {
2202 Requester::set_sticker_mask_position(self, sticker).erase()
2203 }
2204
2205 fn get_available_gifts(&self) -> ErasedRequest<'a, GetAvailableGifts, Self::Err> {
2206 Requester::get_available_gifts(self).erase()
2207 }
2208
2209 fn send_gift(
2210 &self,
2211 user_id: UserId,
2212 gift_id: GiftId,
2213 ) -> ErasedRequest<'a, SendGift, Self::Err> {
2214 Requester::send_gift(self, user_id, gift_id).erase()
2215 }
2216
2217 fn send_gift_chat(
2218 &self,
2219 chat_id: Recipient,
2220 gift_id: GiftId,
2221 ) -> ErasedRequest<'a, SendGiftChat, Self::Err> {
2222 Requester::send_gift_chat(self, chat_id, gift_id).erase()
2223 }
2224
2225 fn gift_premium_subscription(
2226 &self,
2227 user_id: UserId,
2228 month_count: u8,
2229 star_count: u32,
2230 ) -> ErasedRequest<'a, GiftPremiumSubscription, Self::Err> {
2231 Requester::gift_premium_subscription(self, user_id, month_count, star_count).erase()
2232 }
2233
2234 fn verify_user(&self, user_id: UserId) -> ErasedRequest<'a, VerifyUser, Self::Err> {
2235 Requester::verify_user(self, user_id).erase()
2236 }
2237
2238 fn verify_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, VerifyChat, Self::Err> {
2239 Requester::verify_chat(self, chat_id).erase()
2240 }
2241
2242 fn remove_user_verification(
2243 &self,
2244 user_id: UserId,
2245 ) -> ErasedRequest<'a, RemoveUserVerification, Self::Err> {
2246 Requester::remove_user_verification(self, user_id).erase()
2247 }
2248
2249 fn remove_chat_verification(
2250 &self,
2251 chat_id: Recipient,
2252 ) -> ErasedRequest<'a, RemoveChatVerification, Self::Err> {
2253 Requester::remove_chat_verification(self, chat_id).erase()
2254 }
2255
2256 fn read_business_message(
2257 &self,
2258 business_connection_id: BusinessConnectionId,
2259 chat_id: ChatId,
2260 message_id: MessageId,
2261 ) -> ErasedRequest<'a, ReadBusinessMessage, Self::Err> {
2262 Requester::read_business_message(self, business_connection_id, chat_id, message_id).erase()
2263 }
2264
2265 fn delete_business_messages(
2266 &self,
2267 business_connection_id: BusinessConnectionId,
2268 message_ids: Vec<MessageId>,
2269 ) -> ErasedRequest<'a, DeleteBusinessMessages, Self::Err> {
2270 Requester::delete_business_messages(self, business_connection_id, message_ids).erase()
2271 }
2272
2273 fn set_business_account_name(
2274 &self,
2275 business_connection_id: BusinessConnectionId,
2276 first_name: String,
2277 ) -> ErasedRequest<'a, SetBusinessAccountName, Self::Err> {
2278 Requester::set_business_account_name(self, business_connection_id, first_name).erase()
2279 }
2280
2281 fn set_business_account_username(
2282 &self,
2283 business_connection_id: BusinessConnectionId,
2284 ) -> ErasedRequest<'a, SetBusinessAccountUsername, Self::Err> {
2285 Requester::set_business_account_username(self, business_connection_id).erase()
2286 }
2287
2288 fn set_business_account_bio(
2289 &self,
2290 business_connection_id: BusinessConnectionId,
2291 ) -> ErasedRequest<'a, SetBusinessAccountBio, Self::Err> {
2292 Requester::set_business_account_bio(self, business_connection_id).erase()
2293 }
2294
2295 fn set_business_account_profile_photo(
2296 &self,
2297 business_connection_id: BusinessConnectionId,
2298 photo: InputProfilePhoto,
2299 ) -> ErasedRequest<'a, SetBusinessAccountProfilePhoto, Self::Err> {
2300 Requester::set_business_account_profile_photo(self, business_connection_id, photo).erase()
2301 }
2302
2303 fn remove_business_account_profile_photo(
2304 &self,
2305 business_connection_id: BusinessConnectionId,
2306 ) -> ErasedRequest<'a, RemoveBusinessAccountProfilePhoto, Self::Err> {
2307 Requester::remove_business_account_profile_photo(self, business_connection_id).erase()
2308 }
2309
2310 fn set_business_account_gift_settings(
2311 &self,
2312 business_connection_id: BusinessConnectionId,
2313 show_gift_button: bool,
2314 accepted_gift_types: AcceptedGiftTypes,
2315 ) -> ErasedRequest<'a, SetBusinessAccountGiftSettings, Self::Err> {
2316 Requester::set_business_account_gift_settings(
2317 self,
2318 business_connection_id,
2319 show_gift_button,
2320 accepted_gift_types,
2321 )
2322 .erase()
2323 }
2324
2325 fn get_business_account_star_balance(
2326 &self,
2327 business_connection_id: BusinessConnectionId,
2328 ) -> ErasedRequest<'a, GetBusinessAccountStarBalance, Self::Err> {
2329 Requester::get_business_account_star_balance(self, business_connection_id).erase()
2330 }
2331
2332 fn transfer_business_account_stars(
2333 &self,
2334 business_connection_id: BusinessConnectionId,
2335 star_count: u32,
2336 ) -> ErasedRequest<'a, TransferBusinessAccountStars, Self::Err> {
2337 Requester::transfer_business_account_stars(self, business_connection_id, star_count).erase()
2338 }
2339
2340 fn get_business_account_gifts(
2341 &self,
2342 business_connection_id: BusinessConnectionId,
2343 ) -> ErasedRequest<'a, GetBusinessAccountGifts, Self::Err> {
2344 Requester::get_business_account_gifts(self, business_connection_id).erase()
2345 }
2346
2347 fn convert_gift_to_stars(
2348 &self,
2349 business_connection_id: BusinessConnectionId,
2350 owned_gift_id: OwnedGiftId,
2351 ) -> ErasedRequest<'a, ConvertGiftToStars, Self::Err> {
2352 Requester::convert_gift_to_stars(self, business_connection_id, owned_gift_id).erase()
2353 }
2354
2355 fn upgrade_gift(
2356 &self,
2357 business_connection_id: BusinessConnectionId,
2358 owned_gift_id: OwnedGiftId,
2359 ) -> ErasedRequest<'a, UpgradeGift, Self::Err> {
2360 Requester::upgrade_gift(self, business_connection_id, owned_gift_id).erase()
2361 }
2362
2363 fn transfer_gift(
2364 &self,
2365 business_connection_id: BusinessConnectionId,
2366 owned_gift_id: OwnedGiftId,
2367 new_owner_chat_id: ChatId,
2368 ) -> ErasedRequest<'a, TransferGift, Self::Err> {
2369 Requester::transfer_gift(self, business_connection_id, owned_gift_id, new_owner_chat_id)
2370 .erase()
2371 }
2372
2373 fn post_story(
2374 &self,
2375 business_connection_id: BusinessConnectionId,
2376 content: InputStoryContent,
2377 active_period: Seconds,
2378 ) -> ErasedRequest<'a, PostStory, Self::Err> {
2379 Requester::post_story(self, business_connection_id, content, active_period).erase()
2380 }
2381
2382 fn edit_story(
2383 &self,
2384 business_connection_id: BusinessConnectionId,
2385 story_id: StoryId,
2386 content: InputStoryContent,
2387 ) -> ErasedRequest<'a, EditStory, Self::Err> {
2388 Requester::edit_story(self, business_connection_id, story_id, content).erase()
2389 }
2390
2391 fn delete_story(
2392 &self,
2393 business_connection_id: BusinessConnectionId,
2394 story_id: StoryId,
2395 ) -> ErasedRequest<'a, DeleteStory, Self::Err> {
2396 Requester::delete_story(self, business_connection_id, story_id).erase()
2397 }
2398
2399 fn send_invoice(
2400 &self,
2401 chat_id: Recipient,
2402 title: String,
2403 description: String,
2404 payload: String,
2405 currency: String,
2406 prices: Vec<LabeledPrice>,
2407 ) -> ErasedRequest<'a, SendInvoice, Self::Err> {
2408 Requester::send_invoice(self, chat_id, title, description, payload, currency, prices)
2409 .erase()
2410 }
2411
2412 fn create_invoice_link(
2413 &self,
2414 title: String,
2415 description: String,
2416 payload: String,
2417 currency: String,
2418 prices: Vec<LabeledPrice>,
2419 ) -> ErasedRequest<'a, CreateInvoiceLink, Self::Err> {
2420 Requester::create_invoice_link(self, title, description, payload, currency, prices).erase()
2421 }
2422
2423 fn answer_shipping_query(
2424 &self,
2425 shipping_query_id: ShippingQueryId,
2426 ok: bool,
2427 ) -> ErasedRequest<'a, AnswerShippingQuery, Self::Err> {
2428 Requester::answer_shipping_query(self, shipping_query_id, ok).erase()
2429 }
2430
2431 fn answer_pre_checkout_query(
2432 &self,
2433 pre_checkout_query_id: PreCheckoutQueryId,
2434 ok: bool,
2435 ) -> ErasedRequest<'a, AnswerPreCheckoutQuery, Self::Err> {
2436 Requester::answer_pre_checkout_query(self, pre_checkout_query_id, ok).erase()
2437 }
2438
2439 fn get_my_star_balance(&self) -> ErasedRequest<'a, GetMyStarBalance, Self::Err> {
2440 Requester::get_my_star_balance(self).erase()
2441 }
2442
2443 fn get_star_transactions(&self) -> ErasedRequest<'a, GetStarTransactions, Self::Err> {
2444 Requester::get_star_transactions(self).erase()
2445 }
2446
2447 fn refund_star_payment(
2448 &self,
2449 user_id: UserId,
2450 telegram_payment_charge_id: TelegramTransactionId,
2451 ) -> ErasedRequest<'a, RefundStarPayment, Self::Err> {
2452 Requester::refund_star_payment(self, user_id, telegram_payment_charge_id).erase()
2453 }
2454
2455 fn edit_user_star_subscription(
2456 &self,
2457 user_id: UserId,
2458 telegram_payment_charge_id: TelegramTransactionId,
2459 is_canceled: bool,
2460 ) -> ErasedRequest<'a, EditUserStarSubscription, Self::Err> {
2461 Requester::edit_user_star_subscription(
2462 self,
2463 user_id,
2464 telegram_payment_charge_id,
2465 is_canceled,
2466 )
2467 .erase()
2468 }
2469
2470 fn set_passport_data_errors(
2471 &self,
2472 user_id: UserId,
2473 errors: Vec<PassportElementError>,
2474 ) -> ErasedRequest<'a, SetPassportDataErrors, Self::Err> {
2475 Requester::set_passport_data_errors(self, user_id, errors).erase()
2476 }
2477
2478 fn send_game(
2479 &self,
2480 chat_id: ChatId,
2481 game_short_name: String,
2482 ) -> ErasedRequest<'a, SendGame, Self::Err> {
2483 Requester::send_game(self, chat_id, game_short_name).erase()
2484 }
2485
2486 fn set_game_score(
2487 &self,
2488 user_id: UserId,
2489 score: u64,
2490 chat_id: u32,
2491 message_id: MessageId,
2492 ) -> ErasedRequest<'a, SetGameScore, Self::Err> {
2493 Requester::set_game_score(self, user_id, score, chat_id, message_id).erase()
2494 }
2495
2496 fn set_game_score_inline(
2497 &self,
2498 user_id: UserId,
2499 score: u64,
2500 inline_message_id: String,
2501 ) -> ErasedRequest<'a, SetGameScoreInline, Self::Err> {
2502 Requester::set_game_score_inline(self, user_id, score, inline_message_id).erase()
2503 }
2504
2505 fn get_game_high_scores(
2506 &self,
2507 user_id: UserId,
2508 target: TargetMessage,
2509 ) -> ErasedRequest<'a, GetGameHighScores, Self::Err> {
2510 Requester::get_game_high_scores(self, user_id, target).erase()
2511 }
2512}