Skip to main content

ronami_core/adaptors/
erased.rs

1use std::{future::IntoFuture, sync::Arc};
2
3use futures::{FutureExt, future::BoxFuture};
4use reqwest::Url;
5
6use crate::{
7    errors::AsResponseParameters,
8    payloads::*,
9    requests::{HasPayload, Output, Payload, Request, Requester},
10    types::*,
11};
12
13/// [`Requester`] with erased type.
14pub struct ErasedRequester<'a, E> {
15    inner: Arc<dyn ErasableRequester<'a, Err = E> + 'a>,
16}
17
18impl<'a, E> ErasedRequester<'a, E> {
19    /// Erases type of `requester`
20    ///
21    /// Note: it's recommended to use [`RequesterExt::erase`] instead.
22    ///
23    /// [`RequesterExt::erase`]: crate::requests::RequesterExt::erase
24    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
38// NB. hand-written impl to avoid `E: Clone` bound
39impl<E> Clone for ErasedRequester<'_, E> {
40    fn clone(&self) -> Self {
41        Self { inner: Arc::clone(&self.inner) }
42    }
43}
44
45/// [`Request`] with erased type.
46#[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
51// `T: Payload` required b/c of <https://github.com/rust-lang/rust/issues/102185>
52impl<'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
106/// Object safe version of [`Request`].
107///
108/// TODO(waffle): make [`Request`] object safe and remove this trait (this is a
109/// breaking change)
110trait 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_message_draft,
204        send_rich_message,
205        send_rich_message_draft,
206        send_photo,
207        send_audio,
208        send_document,
209        send_video,
210        send_animation,
211        send_voice,
212        send_video_note,
213        send_paid_media,
214        send_media_group,
215        send_location,
216        edit_message_live_location,
217        edit_message_live_location_inline,
218        stop_message_live_location,
219        stop_message_live_location_inline,
220        edit_message_checklist,
221        send_venue,
222        send_contact,
223        send_poll,
224        send_checklist,
225        send_dice,
226        send_chat_action,
227        set_message_reaction,
228        get_user_profile_photos,
229        get_user_profile_audios,
230        set_user_emoji_status,
231        get_file,
232        kick_chat_member,
233        ban_chat_member,
234        unban_chat_member,
235        restrict_chat_member,
236        promote_chat_member,
237        set_chat_administrator_custom_title,
238        set_chat_member_tag,
239        ban_chat_sender_chat,
240        unban_chat_sender_chat,
241        set_chat_permissions,
242        export_chat_invite_link,
243        create_chat_invite_link,
244        edit_chat_invite_link,
245        create_chat_subscription_invite_link,
246        edit_chat_subscription_invite_link,
247        revoke_chat_invite_link,
248        set_chat_photo,
249        delete_chat_photo,
250        set_chat_title,
251        set_chat_description,
252        pin_chat_message,
253        unpin_chat_message,
254        unpin_all_chat_messages,
255        leave_chat,
256        get_chat,
257        get_chat_administrators,
258        get_chat_members_count,
259        get_chat_member_count,
260        get_chat_member,
261        set_chat_sticker_set,
262        delete_chat_sticker_set,
263        get_forum_topic_icon_stickers,
264        create_forum_topic,
265        edit_forum_topic,
266        close_forum_topic,
267        reopen_forum_topic,
268        delete_forum_topic,
269        unpin_all_forum_topic_messages,
270        edit_general_forum_topic,
271        close_general_forum_topic,
272        reopen_general_forum_topic,
273        hide_general_forum_topic,
274        unhide_general_forum_topic,
275        unpin_all_general_forum_topic_messages,
276        answer_callback_query,
277        get_user_chat_boosts,
278        set_my_commands,
279        get_business_connection,
280        get_my_commands,
281        set_my_name,
282        get_my_name,
283        set_my_description,
284        get_my_description,
285        set_my_short_description,
286        get_my_short_description,
287        set_my_profile_photo,
288        remove_my_profile_photo,
289        send_live_photo,
290        get_user_personal_chat_messages,
291        answer_guest_query,
292        get_managed_bot_access_settings,
293        set_managed_bot_access_settings,
294        delete_message_reaction,
295        delete_all_message_reactions,
296        get_managed_bot_token,
297        replace_managed_bot_token,
298        save_prepared_keyboard_button,
299        set_chat_menu_button,
300        get_chat_menu_button,
301        set_my_default_administrator_rights,
302        get_my_default_administrator_rights,
303        delete_my_commands,
304        answer_inline_query,
305        answer_web_app_query,
306        save_prepared_inline_message,
307        edit_message_text,
308        edit_message_text_inline,
309        edit_message_caption,
310        edit_message_caption_inline,
311        edit_message_media,
312        edit_message_media_inline,
313        edit_message_reply_markup,
314        edit_message_reply_markup_inline,
315        stop_poll,
316        approve_suggested_post,
317        decline_suggested_post,
318        delete_message,
319        delete_messages,
320        send_sticker,
321        get_sticker_set,
322        get_custom_emoji_stickers,
323        upload_sticker_file,
324        create_new_sticker_set,
325        add_sticker_to_set,
326        set_sticker_position_in_set,
327        delete_sticker_from_set,
328        replace_sticker_in_set,
329        set_sticker_set_thumbnail,
330        set_custom_emoji_sticker_set_thumbnail,
331        set_sticker_set_title,
332        delete_sticker_set,
333        set_sticker_emoji_list,
334        set_sticker_keywords,
335        set_sticker_mask_position,
336        get_available_gifts,
337        send_gift,
338        send_gift_chat,
339        gift_premium_subscription,
340        verify_user,
341        verify_chat,
342        remove_user_verification,
343        remove_chat_verification,
344        read_business_message,
345        delete_business_messages,
346        set_business_account_name,
347        set_business_account_username,
348        set_business_account_bio,
349        set_business_account_profile_photo,
350        remove_business_account_profile_photo,
351        set_business_account_gift_settings,
352        get_business_account_star_balance,
353        transfer_business_account_stars,
354        get_business_account_gifts,
355        get_user_gifts,
356        get_chat_gifts,
357        convert_gift_to_stars,
358        upgrade_gift,
359        transfer_gift,
360        post_story,
361        repost_story,
362        edit_story,
363        delete_story,
364        send_invoice,
365        create_invoice_link,
366        answer_shipping_query,
367        answer_pre_checkout_query,
368        get_my_star_balance,
369        get_star_transactions,
370        refund_star_payment,
371        edit_user_star_subscription,
372        set_passport_data_errors,
373        send_game,
374        set_game_score,
375        set_game_score_inline,
376        get_game_high_scores,
377        approve_chat_join_request,
378        decline_chat_join_request,
379        answer_chat_join_request_query,
380        send_chat_join_request_web_app,
381        edit_ephemeral_message_text,
382        edit_ephemeral_message_media,
383        edit_ephemeral_message_caption,
384        edit_ephemeral_message_reply_markup,
385        delete_ephemeral_message
386        => fwd_erased, fty
387    }
388}
389
390/// Object safe version of [`Requester`].
391trait ErasableRequester<'a> {
392    /// Error type returned by all requests.
393    type Err: std::error::Error + Send;
394
395    fn get_updates(&self) -> ErasedRequest<'a, GetUpdates, Self::Err>;
396
397    fn set_webhook(&self, url: Url) -> ErasedRequest<'a, SetWebhook, Self::Err>;
398
399    fn delete_webhook(&self) -> ErasedRequest<'a, DeleteWebhook, Self::Err>;
400
401    fn get_webhook_info(&self) -> ErasedRequest<'a, GetWebhookInfo, Self::Err>;
402
403    fn get_me(&self) -> ErasedRequest<'a, GetMe, Self::Err>;
404
405    fn log_out(&self) -> ErasedRequest<'a, LogOut, Self::Err>;
406
407    fn close(&self) -> ErasedRequest<'a, Close, Self::Err>;
408
409    fn send_message(
410        &self,
411        chat_id: Recipient,
412        text: String,
413    ) -> ErasedRequest<'a, SendMessage, Self::Err>;
414
415    fn send_message_draft(
416        &self,
417        chat_id: Recipient,
418        draft_id: DraftId,
419        text: String,
420    ) -> ErasedRequest<'a, SendMessageDraft, Self::Err>;
421
422    fn send_rich_message(
423        &self,
424        chat_id: Recipient,
425        rich_message: InputRichMessage,
426    ) -> ErasedRequest<'a, SendRichMessage, Self::Err>;
427
428    fn send_rich_message_draft(
429        &self,
430        chat_id: Recipient,
431        draft_id: DraftId,
432        rich_message: InputRichMessage,
433    ) -> ErasedRequest<'a, SendRichMessageDraft, Self::Err>;
434
435    fn forward_message(
436        &self,
437        chat_id: Recipient,
438        from_chat_id: Recipient,
439        message_id: MessageId,
440    ) -> ErasedRequest<'a, ForwardMessage, Self::Err>;
441
442    fn forward_messages(
443        &self,
444        chat_id: Recipient,
445        from_chat_id: Recipient,
446        message_ids: Vec<MessageId>,
447    ) -> ErasedRequest<'a, ForwardMessages, Self::Err>;
448
449    fn copy_message(
450        &self,
451        chat_id: Recipient,
452        from_chat_id: Recipient,
453        message_id: MessageId,
454    ) -> ErasedRequest<'a, CopyMessage, Self::Err>;
455
456    fn copy_messages(
457        &self,
458        chat_id: Recipient,
459        from_chat_id: Recipient,
460        message_ids: Vec<MessageId>,
461    ) -> ErasedRequest<'a, CopyMessages, Self::Err>;
462
463    fn send_photo(
464        &self,
465        chat_id: Recipient,
466        photo: InputFile,
467    ) -> ErasedRequest<'a, SendPhoto, Self::Err>;
468
469    fn send_audio(
470        &self,
471        chat_id: Recipient,
472        audio: InputFile,
473    ) -> ErasedRequest<'a, SendAudio, Self::Err>;
474
475    fn send_document(
476        &self,
477        chat_id: Recipient,
478        document: InputFile,
479    ) -> ErasedRequest<'a, SendDocument, Self::Err>;
480
481    fn send_video(
482        &self,
483        chat_id: Recipient,
484        video: InputFile,
485    ) -> ErasedRequest<'a, SendVideo, Self::Err>;
486
487    fn send_animation(
488        &self,
489        chat_id: Recipient,
490        animation: InputFile,
491    ) -> ErasedRequest<'a, SendAnimation, Self::Err>;
492
493    fn send_voice(
494        &self,
495        chat_id: Recipient,
496        voice: InputFile,
497    ) -> ErasedRequest<'a, SendVoice, Self::Err>;
498
499    fn send_video_note(
500        &self,
501        chat_id: Recipient,
502        video_note: InputFile,
503    ) -> ErasedRequest<'a, SendVideoNote, Self::Err>;
504
505    fn send_paid_media(
506        &self,
507        chat_id: Recipient,
508        star_count: u32,
509        media: Vec<InputPaidMedia>,
510    ) -> ErasedRequest<'a, SendPaidMedia, Self::Err>;
511
512    fn send_media_group(
513        &self,
514        chat_id: Recipient,
515        media: Vec<InputMedia>,
516    ) -> ErasedRequest<'a, SendMediaGroup, Self::Err>;
517
518    fn send_location(
519        &self,
520        chat_id: Recipient,
521        latitude: f64,
522        longitude: f64,
523    ) -> ErasedRequest<'a, SendLocation, Self::Err>;
524
525    fn edit_message_live_location(
526        &self,
527        chat_id: Recipient,
528        message_id: MessageId,
529        latitude: f64,
530        longitude: f64,
531    ) -> ErasedRequest<'a, EditMessageLiveLocation, Self::Err>;
532
533    fn edit_message_live_location_inline(
534        &self,
535        inline_message_id: String,
536        latitude: f64,
537        longitude: f64,
538    ) -> ErasedRequest<'a, EditMessageLiveLocationInline, Self::Err>;
539
540    fn stop_message_live_location(
541        &self,
542        chat_id: Recipient,
543        message_id: MessageId,
544    ) -> ErasedRequest<'a, StopMessageLiveLocation, Self::Err>;
545
546    fn stop_message_live_location_inline(
547        &self,
548        inline_message_id: String,
549    ) -> ErasedRequest<'a, StopMessageLiveLocationInline, Self::Err>;
550
551    fn edit_message_checklist(
552        &self,
553        business_connection_id: BusinessConnectionId,
554        chat_id: ChatId,
555        message_id: MessageId,
556        checklist: InputChecklist,
557    ) -> ErasedRequest<'a, EditMessageChecklist, Self::Err>;
558
559    fn send_venue(
560        &self,
561        chat_id: Recipient,
562        latitude: f64,
563        longitude: f64,
564        title: String,
565        address: String,
566    ) -> ErasedRequest<'a, SendVenue, Self::Err>;
567
568    fn send_contact(
569        &self,
570        chat_id: Recipient,
571        phone_number: String,
572        first_name: String,
573    ) -> ErasedRequest<'a, SendContact, Self::Err>;
574
575    fn send_poll(
576        &self,
577        chat_id: Recipient,
578        question: String,
579        options: Vec<InputPollOption>,
580    ) -> ErasedRequest<'a, SendPoll, Self::Err>;
581
582    fn send_checklist(
583        &self,
584        business_connection_id: BusinessConnectionId,
585        chat_id: ChatId,
586        checklist: InputChecklist,
587    ) -> ErasedRequest<'a, SendChecklist, Self::Err>;
588
589    fn send_dice(&self, chat_id: Recipient) -> ErasedRequest<'a, SendDice, Self::Err>;
590
591    fn send_chat_action(
592        &self,
593        chat_id: Recipient,
594        action: ChatAction,
595    ) -> ErasedRequest<'a, SendChatAction, Self::Err>;
596
597    fn set_message_reaction(
598        &self,
599        chat_id: Recipient,
600        message_id: MessageId,
601    ) -> ErasedRequest<'a, SetMessageReaction, Self::Err>;
602
603    fn get_user_profile_photos(
604        &self,
605        user_id: UserId,
606    ) -> ErasedRequest<'a, GetUserProfilePhotos, Self::Err>;
607
608    fn get_user_profile_audios(
609        &self,
610        user_id: UserId,
611    ) -> ErasedRequest<'a, GetUserProfileAudios, Self::Err>;
612
613    fn set_user_emoji_status(
614        &self,
615        user_id: UserId,
616    ) -> ErasedRequest<'a, SetUserEmojiStatus, Self::Err>;
617
618    fn get_file(&self, file_id: FileId) -> ErasedRequest<'a, GetFile, Self::Err>;
619
620    fn ban_chat_member(
621        &self,
622        chat_id: Recipient,
623        user_id: UserId,
624    ) -> ErasedRequest<'a, BanChatMember, Self::Err>;
625
626    fn kick_chat_member(
627        &self,
628        chat_id: Recipient,
629        user_id: UserId,
630    ) -> ErasedRequest<'a, KickChatMember, Self::Err>;
631
632    fn unban_chat_member(
633        &self,
634        chat_id: Recipient,
635        user_id: UserId,
636    ) -> ErasedRequest<'a, UnbanChatMember, Self::Err>;
637
638    fn restrict_chat_member(
639        &self,
640        chat_id: Recipient,
641        user_id: UserId,
642        permissions: ChatPermissions,
643    ) -> ErasedRequest<'a, RestrictChatMember, Self::Err>;
644
645    fn promote_chat_member(
646        &self,
647        chat_id: Recipient,
648        user_id: UserId,
649    ) -> ErasedRequest<'a, PromoteChatMember, Self::Err>;
650
651    fn set_chat_administrator_custom_title(
652        &self,
653        chat_id: Recipient,
654        user_id: UserId,
655        custom_title: String,
656    ) -> ErasedRequest<'a, SetChatAdministratorCustomTitle, Self::Err>;
657
658    fn set_chat_member_tag(
659        &self,
660        chat_id: Recipient,
661        user_id: UserId,
662    ) -> ErasedRequest<'a, SetChatMemberTag, Self::Err>;
663
664    fn ban_chat_sender_chat(
665        &self,
666        chat_id: Recipient,
667        sender_chat_id: ChatId,
668    ) -> ErasedRequest<'a, BanChatSenderChat, Self::Err>;
669
670    fn unban_chat_sender_chat(
671        &self,
672        chat_id: Recipient,
673        sender_chat_id: ChatId,
674    ) -> ErasedRequest<'a, UnbanChatSenderChat, Self::Err>;
675
676    fn set_chat_permissions(
677        &self,
678        chat_id: Recipient,
679        permissions: ChatPermissions,
680    ) -> ErasedRequest<'a, SetChatPermissions, Self::Err>;
681
682    fn export_chat_invite_link(
683        &self,
684        chat_id: Recipient,
685    ) -> ErasedRequest<'a, ExportChatInviteLink, Self::Err>;
686
687    fn create_chat_invite_link(
688        &self,
689        chat_id: Recipient,
690    ) -> ErasedRequest<'a, CreateChatInviteLink, Self::Err>;
691
692    fn edit_chat_invite_link(
693        &self,
694        chat_id: Recipient,
695        invite_link: String,
696    ) -> ErasedRequest<'a, EditChatInviteLink, Self::Err>;
697
698    fn create_chat_subscription_invite_link(
699        &self,
700        chat_id: Recipient,
701        subscription_period: Seconds,
702        subscription_price: u32,
703    ) -> ErasedRequest<'a, CreateChatSubscriptionInviteLink, Self::Err>;
704
705    fn edit_chat_subscription_invite_link(
706        &self,
707        chat_id: Recipient,
708        invite_link: String,
709    ) -> ErasedRequest<'a, EditChatSubscriptionInviteLink, Self::Err>;
710
711    fn revoke_chat_invite_link(
712        &self,
713        chat_id: Recipient,
714        invite_link: String,
715    ) -> ErasedRequest<'a, RevokeChatInviteLink, Self::Err>;
716
717    /// For Telegram documentation see [`ApproveChatJoinRequest`].
718    fn approve_chat_join_request(
719        &self,
720        chat_id: Recipient,
721        user_id: UserId,
722    ) -> ErasedRequest<'a, ApproveChatJoinRequest, Self::Err>;
723
724    /// For Telegram documentation see [`DeclineChatJoinRequest`].
725    fn decline_chat_join_request(
726        &self,
727        chat_id: Recipient,
728        user_id: UserId,
729    ) -> ErasedRequest<'a, DeclineChatJoinRequest, Self::Err>;
730
731    /// For Telegram documentation see [`AnswerChatJoinRequestQuery`].
732    fn answer_chat_join_request_query(
733        &self,
734        chat_join_request_query_id: String,
735        result: String,
736    ) -> ErasedRequest<'a, AnswerChatJoinRequestQuery, Self::Err>;
737
738    /// For Telegram documentation see [`SendChatJoinRequestWebApp`].
739    fn send_chat_join_request_web_app(
740        &self,
741        chat_join_request_query_id: String,
742        web_app_url: String,
743    ) -> ErasedRequest<'a, SendChatJoinRequestWebApp, Self::Err>;
744
745    /// For Telegram documentation see [`EditEphemeralMessageText`].
746    fn edit_ephemeral_message_text(
747        &self,
748        chat_id: Recipient,
749        receiver_user_id: UserId,
750        ephemeral_message_id: MessageId,
751    ) -> ErasedRequest<'a, EditEphemeralMessageText, Self::Err>;
752
753    /// For Telegram documentation see [`EditEphemeralMessageMedia`].
754    fn edit_ephemeral_message_media(
755        &self,
756        chat_id: Recipient,
757        receiver_user_id: UserId,
758        ephemeral_message_id: MessageId,
759        media: InputMedia,
760    ) -> ErasedRequest<'a, EditEphemeralMessageMedia, Self::Err>;
761
762    /// For Telegram documentation see [`EditEphemeralMessageCaption`].
763    fn edit_ephemeral_message_caption(
764        &self,
765        chat_id: Recipient,
766        receiver_user_id: UserId,
767        ephemeral_message_id: MessageId,
768    ) -> ErasedRequest<'a, EditEphemeralMessageCaption, Self::Err>;
769
770    /// For Telegram documentation see [`EditEphemeralMessageReplyMarkup`].
771    fn edit_ephemeral_message_reply_markup(
772        &self,
773        chat_id: Recipient,
774        receiver_user_id: UserId,
775        ephemeral_message_id: MessageId,
776    ) -> ErasedRequest<'a, EditEphemeralMessageReplyMarkup, Self::Err>;
777
778    /// For Telegram documentation see [`DeleteEphemeralMessage`].
779    fn delete_ephemeral_message(
780        &self,
781        chat_id: Recipient,
782        receiver_user_id: UserId,
783        ephemeral_message_id: MessageId,
784    ) -> ErasedRequest<'a, DeleteEphemeralMessage, Self::Err>;
785
786    fn set_chat_photo(
787        &self,
788        chat_id: Recipient,
789        photo: InputFile,
790    ) -> ErasedRequest<'a, SetChatPhoto, Self::Err>;
791
792    fn delete_chat_photo(
793        &self,
794        chat_id: Recipient,
795    ) -> ErasedRequest<'a, DeleteChatPhoto, Self::Err>;
796
797    fn set_chat_title(
798        &self,
799        chat_id: Recipient,
800        title: String,
801    ) -> ErasedRequest<'a, SetChatTitle, Self::Err>;
802
803    fn set_chat_description(
804        &self,
805        chat_id: Recipient,
806    ) -> ErasedRequest<'a, SetChatDescription, Self::Err>;
807
808    fn pin_chat_message(
809        &self,
810        chat_id: Recipient,
811        message_id: MessageId,
812    ) -> ErasedRequest<'a, PinChatMessage, Self::Err>;
813
814    fn unpin_chat_message(
815        &self,
816        chat_id: Recipient,
817    ) -> ErasedRequest<'a, UnpinChatMessage, Self::Err>;
818
819    fn unpin_all_chat_messages(
820        &self,
821        chat_id: Recipient,
822    ) -> ErasedRequest<'a, UnpinAllChatMessages, Self::Err>;
823
824    fn leave_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, LeaveChat, Self::Err>;
825
826    fn get_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, GetChat, Self::Err>;
827
828    fn get_chat_administrators(
829        &self,
830        chat_id: Recipient,
831    ) -> ErasedRequest<'a, GetChatAdministrators, Self::Err>;
832
833    fn get_chat_member_count(
834        &self,
835        chat_id: Recipient,
836    ) -> ErasedRequest<'a, GetChatMemberCount, Self::Err>;
837
838    fn get_chat_members_count(
839        &self,
840        chat_id: Recipient,
841    ) -> ErasedRequest<'a, GetChatMembersCount, Self::Err>;
842
843    fn get_chat_member(
844        &self,
845        chat_id: Recipient,
846        user_id: UserId,
847    ) -> ErasedRequest<'a, GetChatMember, Self::Err>;
848
849    fn set_chat_sticker_set(
850        &self,
851        chat_id: Recipient,
852        sticker_set_name: String,
853    ) -> ErasedRequest<'a, SetChatStickerSet, Self::Err>;
854
855    fn delete_chat_sticker_set(
856        &self,
857        chat_id: Recipient,
858    ) -> ErasedRequest<'a, DeleteChatStickerSet, Self::Err>;
859
860    fn get_forum_topic_icon_stickers(
861        &self,
862    ) -> ErasedRequest<'a, GetForumTopicIconStickers, Self::Err>;
863
864    fn create_forum_topic(
865        &self,
866        chat_id: Recipient,
867        name: String,
868    ) -> ErasedRequest<'a, CreateForumTopic, Self::Err>;
869
870    fn edit_forum_topic(
871        &self,
872        chat_id: Recipient,
873        message_thread_id: ThreadId,
874    ) -> ErasedRequest<'a, EditForumTopic, Self::Err>;
875
876    fn close_forum_topic(
877        &self,
878        chat_id: Recipient,
879        message_thread_id: ThreadId,
880    ) -> ErasedRequest<'a, CloseForumTopic, Self::Err>;
881
882    fn reopen_forum_topic(
883        &self,
884        chat_id: Recipient,
885        message_thread_id: ThreadId,
886    ) -> ErasedRequest<'a, ReopenForumTopic, Self::Err>;
887
888    fn delete_forum_topic(
889        &self,
890        chat_id: Recipient,
891        message_thread_id: ThreadId,
892    ) -> ErasedRequest<'a, DeleteForumTopic, Self::Err>;
893
894    fn unpin_all_forum_topic_messages(
895        &self,
896        chat_id: Recipient,
897        message_thread_id: ThreadId,
898    ) -> ErasedRequest<'a, UnpinAllForumTopicMessages, Self::Err>;
899
900    fn edit_general_forum_topic(
901        &self,
902        chat_id: Recipient,
903        name: String,
904    ) -> ErasedRequest<'a, EditGeneralForumTopic, Self::Err>;
905
906    fn close_general_forum_topic(
907        &self,
908        chat_id: Recipient,
909    ) -> ErasedRequest<'a, CloseGeneralForumTopic, Self::Err>;
910
911    fn reopen_general_forum_topic(
912        &self,
913        chat_id: Recipient,
914    ) -> ErasedRequest<'a, ReopenGeneralForumTopic, Self::Err>;
915
916    fn hide_general_forum_topic(
917        &self,
918        chat_id: Recipient,
919    ) -> ErasedRequest<'a, HideGeneralForumTopic, Self::Err>;
920
921    fn unhide_general_forum_topic(
922        &self,
923        chat_id: Recipient,
924    ) -> ErasedRequest<'a, UnhideGeneralForumTopic, Self::Err>;
925
926    fn unpin_all_general_forum_topic_messages(
927        &self,
928        chat_id: Recipient,
929    ) -> ErasedRequest<'a, UnpinAllGeneralForumTopicMessages, Self::Err>;
930
931    fn answer_callback_query(
932        &self,
933        callback_query_id: CallbackQueryId,
934    ) -> ErasedRequest<'a, AnswerCallbackQuery, Self::Err>;
935
936    fn get_user_chat_boosts(
937        &self,
938        chat_id: Recipient,
939        user_id: UserId,
940    ) -> ErasedRequest<'a, GetUserChatBoosts, Self::Err>;
941
942    fn set_my_commands(
943        &self,
944        commands: Vec<BotCommand>,
945    ) -> ErasedRequest<'a, SetMyCommands, Self::Err>;
946
947    fn get_business_connection(
948        &self,
949        business_connection_id: BusinessConnectionId,
950    ) -> ErasedRequest<'a, GetBusinessConnection, Self::Err>;
951
952    fn get_my_commands(&self) -> ErasedRequest<'a, GetMyCommands, Self::Err>;
953
954    fn set_my_name(&self) -> ErasedRequest<'a, SetMyName, Self::Err>;
955
956    fn get_my_name(&self) -> ErasedRequest<'a, GetMyName, Self::Err>;
957
958    fn set_my_description(&self) -> ErasedRequest<'a, SetMyDescription, Self::Err>;
959
960    fn get_my_description(&self) -> ErasedRequest<'a, GetMyDescription, Self::Err>;
961
962    fn set_my_short_description(&self) -> ErasedRequest<'a, SetMyShortDescription, Self::Err>;
963
964    fn get_my_short_description(&self) -> ErasedRequest<'a, GetMyShortDescription, Self::Err>;
965
966    fn set_my_profile_photo(
967        &self,
968        photo: InputProfilePhoto,
969    ) -> ErasedRequest<'a, SetMyProfilePhoto, Self::Err>;
970
971    fn remove_my_profile_photo(&self) -> ErasedRequest<'a, RemoveMyProfilePhoto, Self::Err>;
972
973    fn get_managed_bot_token(
974        &self,
975        user_id: UserId,
976    ) -> ErasedRequest<'a, GetManagedBotToken, Self::Err>;
977
978    fn replace_managed_bot_token(
979        &self,
980        user_id: UserId,
981    ) -> ErasedRequest<'a, ReplaceManagedBotToken, Self::Err>;
982
983    fn save_prepared_keyboard_button(
984        &self,
985        user_id: UserId,
986        button: KeyboardButton,
987    ) -> ErasedRequest<'a, SavePreparedKeyboardButton, Self::Err>;
988
989    fn send_live_photo(
990        &self,
991        chat_id: Recipient,
992        live_photo: InputFile,
993        photo: InputFile,
994    ) -> ErasedRequest<'a, SendLivePhoto, Self::Err>;
995
996    fn get_user_personal_chat_messages(
997        &self,
998        user_id: UserId,
999        limit: u8,
1000    ) -> ErasedRequest<'a, GetUserPersonalChatMessages, Self::Err>;
1001
1002    fn answer_guest_query(
1003        &self,
1004        guest_query_id: GuestQueryId,
1005        result: InlineQueryResult,
1006    ) -> ErasedRequest<'a, AnswerGuestQuery, Self::Err>;
1007
1008    fn get_managed_bot_access_settings(
1009        &self,
1010        user_id: UserId,
1011    ) -> ErasedRequest<'a, GetManagedBotAccessSettings, Self::Err>;
1012
1013    fn set_managed_bot_access_settings(
1014        &self,
1015        user_id: UserId,
1016        is_access_restricted: bool,
1017    ) -> ErasedRequest<'a, SetManagedBotAccessSettings, Self::Err>;
1018
1019    fn delete_message_reaction(
1020        &self,
1021        chat_id: Recipient,
1022        message_id: i32,
1023    ) -> ErasedRequest<'a, DeleteMessageReaction, Self::Err>;
1024
1025    fn delete_all_message_reactions(
1026        &self,
1027        chat_id: Recipient,
1028    ) -> ErasedRequest<'a, DeleteAllMessageReactions, Self::Err>;
1029
1030    fn set_chat_menu_button(&self) -> ErasedRequest<'a, SetChatMenuButton, Self::Err>;
1031
1032    fn get_chat_menu_button(&self) -> ErasedRequest<'a, GetChatMenuButton, Self::Err>;
1033
1034    fn set_my_default_administrator_rights(
1035        &self,
1036    ) -> ErasedRequest<'a, SetMyDefaultAdministratorRights, Self::Err>;
1037
1038    fn get_my_default_administrator_rights(
1039        &self,
1040    ) -> ErasedRequest<'a, GetMyDefaultAdministratorRights, Self::Err>;
1041
1042    fn delete_my_commands(&self) -> ErasedRequest<'a, DeleteMyCommands, Self::Err>;
1043
1044    fn answer_inline_query(
1045        &self,
1046        inline_query_id: InlineQueryId,
1047        results: Vec<InlineQueryResult>,
1048    ) -> ErasedRequest<'a, AnswerInlineQuery, Self::Err>;
1049
1050    fn answer_web_app_query(
1051        &self,
1052        web_app_query_id: String,
1053        result: InlineQueryResult,
1054    ) -> ErasedRequest<'a, AnswerWebAppQuery, Self::Err>;
1055
1056    fn save_prepared_inline_message(
1057        &self,
1058        user_id: UserId,
1059        result: InlineQueryResult,
1060    ) -> ErasedRequest<'a, SavePreparedInlineMessage, Self::Err>;
1061
1062    fn edit_message_text(
1063        &self,
1064        chat_id: Recipient,
1065        message_id: MessageId,
1066        text: String,
1067    ) -> ErasedRequest<'a, EditMessageText, Self::Err>;
1068
1069    fn edit_message_text_inline(
1070        &self,
1071        inline_message_id: String,
1072        text: String,
1073    ) -> ErasedRequest<'a, EditMessageTextInline, Self::Err>;
1074
1075    fn edit_message_caption(
1076        &self,
1077        chat_id: Recipient,
1078        message_id: MessageId,
1079    ) -> ErasedRequest<'a, EditMessageCaption, Self::Err>;
1080
1081    fn edit_message_caption_inline(
1082        &self,
1083        inline_message_id: String,
1084    ) -> ErasedRequest<'a, EditMessageCaptionInline, Self::Err>;
1085
1086    fn edit_message_media(
1087        &self,
1088        chat_id: Recipient,
1089        message_id: MessageId,
1090        media: InputMedia,
1091    ) -> ErasedRequest<'a, EditMessageMedia, Self::Err>;
1092
1093    fn edit_message_media_inline(
1094        &self,
1095        inline_message_id: String,
1096        media: InputMedia,
1097    ) -> ErasedRequest<'a, EditMessageMediaInline, Self::Err>;
1098
1099    fn edit_message_reply_markup(
1100        &self,
1101        chat_id: Recipient,
1102        message_id: MessageId,
1103    ) -> ErasedRequest<'a, EditMessageReplyMarkup, Self::Err>;
1104
1105    fn edit_message_reply_markup_inline(
1106        &self,
1107        inline_message_id: String,
1108    ) -> ErasedRequest<'a, EditMessageReplyMarkupInline, Self::Err>;
1109
1110    fn stop_poll(
1111        &self,
1112        chat_id: Recipient,
1113        message_id: MessageId,
1114    ) -> ErasedRequest<'a, StopPoll, Self::Err>;
1115
1116    fn approve_suggested_post(
1117        &self,
1118        chat_id: ChatId,
1119        message_id: MessageId,
1120    ) -> ErasedRequest<'a, ApproveSuggestedPost, Self::Err>;
1121
1122    fn decline_suggested_post(
1123        &self,
1124        chat_id: ChatId,
1125        message_id: MessageId,
1126    ) -> ErasedRequest<'a, DeclineSuggestedPost, Self::Err>;
1127
1128    fn delete_message(
1129        &self,
1130        chat_id: Recipient,
1131        message_id: MessageId,
1132    ) -> ErasedRequest<'a, DeleteMessage, Self::Err>;
1133
1134    fn delete_messages(
1135        &self,
1136        chat_id: Recipient,
1137        message_ids: Vec<MessageId>,
1138    ) -> ErasedRequest<'a, DeleteMessages, Self::Err>;
1139
1140    fn send_sticker(
1141        &self,
1142        chat_id: Recipient,
1143        sticker: InputFile,
1144    ) -> ErasedRequest<'a, SendSticker, Self::Err>;
1145
1146    fn get_sticker_set(&self, name: String) -> ErasedRequest<'a, GetStickerSet, Self::Err>;
1147
1148    fn get_custom_emoji_stickers(
1149        &self,
1150        custom_emoji_ids: Vec<CustomEmojiId>,
1151    ) -> ErasedRequest<'a, GetCustomEmojiStickers, Self::Err>;
1152
1153    fn upload_sticker_file(
1154        &self,
1155        user_id: UserId,
1156        sticker: InputFile,
1157        sticker_format: StickerFormat,
1158    ) -> ErasedRequest<'a, UploadStickerFile, Self::Err>;
1159
1160    fn create_new_sticker_set(
1161        &self,
1162        user_id: UserId,
1163        name: String,
1164        title: String,
1165        stickers: Vec<InputSticker>,
1166    ) -> ErasedRequest<'a, CreateNewStickerSet, Self::Err>;
1167
1168    fn add_sticker_to_set(
1169        &self,
1170        user_id: UserId,
1171        name: String,
1172        sticker: InputSticker,
1173    ) -> ErasedRequest<'a, AddStickerToSet, Self::Err>;
1174
1175    fn set_sticker_position_in_set(
1176        &self,
1177        sticker: String,
1178        position: u32,
1179    ) -> ErasedRequest<'a, SetStickerPositionInSet, Self::Err>;
1180
1181    fn delete_sticker_from_set(
1182        &self,
1183        sticker: String,
1184    ) -> ErasedRequest<'a, DeleteStickerFromSet, Self::Err>;
1185
1186    fn replace_sticker_in_set(
1187        &self,
1188        user_id: UserId,
1189        name: String,
1190        old_sticker: String,
1191        sticker: InputSticker,
1192    ) -> ErasedRequest<'a, ReplaceStickerInSet, Self::Err>;
1193
1194    fn set_sticker_set_thumbnail(
1195        &self,
1196        name: String,
1197        user_id: UserId,
1198        format: StickerFormat,
1199    ) -> ErasedRequest<'a, SetStickerSetThumbnail, Self::Err>;
1200
1201    fn set_custom_emoji_sticker_set_thumbnail(
1202        &self,
1203        name: String,
1204    ) -> ErasedRequest<'a, SetCustomEmojiStickerSetThumbnail, Self::Err>;
1205
1206    fn set_sticker_set_title(
1207        &self,
1208        name: String,
1209        title: String,
1210    ) -> ErasedRequest<'a, SetStickerSetTitle, Self::Err>;
1211
1212    fn delete_sticker_set(&self, name: String) -> ErasedRequest<'a, DeleteStickerSet, Self::Err>;
1213
1214    fn set_sticker_emoji_list(
1215        &self,
1216        sticker: String,
1217        emoji_list: Vec<String>,
1218    ) -> ErasedRequest<'a, SetStickerEmojiList, Self::Err>;
1219
1220    fn set_sticker_keywords(
1221        &self,
1222        sticker: String,
1223    ) -> ErasedRequest<'a, SetStickerKeywords, Self::Err>;
1224
1225    fn set_sticker_mask_position(
1226        &self,
1227        sticker: String,
1228    ) -> ErasedRequest<'a, SetStickerMaskPosition, Self::Err>;
1229
1230    fn get_available_gifts(&self) -> ErasedRequest<'a, GetAvailableGifts, Self::Err>;
1231
1232    fn send_gift(&self, user_id: UserId, gift_id: GiftId)
1233    -> ErasedRequest<'a, SendGift, Self::Err>;
1234
1235    fn send_gift_chat(
1236        &self,
1237        chat_id: Recipient,
1238        gift_id: GiftId,
1239    ) -> ErasedRequest<'a, SendGiftChat, Self::Err>;
1240
1241    fn gift_premium_subscription(
1242        &self,
1243        user_id: UserId,
1244        month_count: u8,
1245        star_count: u32,
1246    ) -> ErasedRequest<'a, GiftPremiumSubscription, Self::Err>;
1247
1248    fn verify_user(&self, user_id: UserId) -> ErasedRequest<'a, VerifyUser, Self::Err>;
1249
1250    fn verify_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, VerifyChat, Self::Err>;
1251
1252    fn remove_user_verification(
1253        &self,
1254        user_id: UserId,
1255    ) -> ErasedRequest<'a, RemoveUserVerification, Self::Err>;
1256
1257    fn remove_chat_verification(
1258        &self,
1259        chat_id: Recipient,
1260    ) -> ErasedRequest<'a, RemoveChatVerification, Self::Err>;
1261
1262    fn read_business_message(
1263        &self,
1264        business_connection_id: BusinessConnectionId,
1265        chat_id: ChatId,
1266        message_id: MessageId,
1267    ) -> ErasedRequest<'a, ReadBusinessMessage, Self::Err>;
1268
1269    fn delete_business_messages(
1270        &self,
1271        business_connection_id: BusinessConnectionId,
1272        message_ids: Vec<MessageId>,
1273    ) -> ErasedRequest<'a, DeleteBusinessMessages, Self::Err>;
1274
1275    fn set_business_account_name(
1276        &self,
1277        business_connection_id: BusinessConnectionId,
1278        first_name: String,
1279    ) -> ErasedRequest<'a, SetBusinessAccountName, Self::Err>;
1280
1281    fn set_business_account_username(
1282        &self,
1283        business_connection_id: BusinessConnectionId,
1284    ) -> ErasedRequest<'a, SetBusinessAccountUsername, Self::Err>;
1285
1286    fn set_business_account_profile_photo(
1287        &self,
1288        business_connection_id: BusinessConnectionId,
1289        photo: InputProfilePhoto,
1290    ) -> ErasedRequest<'a, SetBusinessAccountProfilePhoto, Self::Err>;
1291
1292    fn remove_business_account_profile_photo(
1293        &self,
1294        business_connection_id: BusinessConnectionId,
1295    ) -> ErasedRequest<'a, RemoveBusinessAccountProfilePhoto, Self::Err>;
1296
1297    fn set_business_account_gift_settings(
1298        &self,
1299        business_connection_id: BusinessConnectionId,
1300        show_gift_button: bool,
1301        accepted_gift_types: AcceptedGiftTypes,
1302    ) -> ErasedRequest<'a, SetBusinessAccountGiftSettings, Self::Err>;
1303
1304    fn get_business_account_star_balance(
1305        &self,
1306        business_connection_id: BusinessConnectionId,
1307    ) -> ErasedRequest<'a, GetBusinessAccountStarBalance, Self::Err>;
1308
1309    fn transfer_business_account_stars(
1310        &self,
1311        business_connection_id: BusinessConnectionId,
1312        star_count: u32,
1313    ) -> ErasedRequest<'a, TransferBusinessAccountStars, Self::Err>;
1314
1315    fn get_business_account_gifts(
1316        &self,
1317        business_connection_id: BusinessConnectionId,
1318    ) -> ErasedRequest<'a, GetBusinessAccountGifts, Self::Err>;
1319
1320    fn convert_gift_to_stars(
1321        &self,
1322        business_connection_id: BusinessConnectionId,
1323        owned_gift_id: OwnedGiftId,
1324    ) -> ErasedRequest<'a, ConvertGiftToStars, Self::Err>;
1325
1326    fn upgrade_gift(
1327        &self,
1328        business_connection_id: BusinessConnectionId,
1329        owned_gift_id: OwnedGiftId,
1330    ) -> ErasedRequest<'a, UpgradeGift, Self::Err>;
1331
1332    fn transfer_gift(
1333        &self,
1334        business_connection_id: BusinessConnectionId,
1335        owned_gift_id: OwnedGiftId,
1336        new_owner_chat_id: ChatId,
1337    ) -> ErasedRequest<'a, TransferGift, Self::Err>;
1338
1339    fn get_user_gifts(&self, user_id: UserId) -> ErasedRequest<'a, GetUserGifts, Self::Err>;
1340
1341    fn get_chat_gifts(&self, chat_id: Recipient) -> ErasedRequest<'a, GetChatGifts, Self::Err>;
1342
1343    fn repost_story(
1344        &self,
1345        business_connection_id: BusinessConnectionId,
1346        from_chat_id: ChatId,
1347        from_story_id: StoryId,
1348        active_period: Seconds,
1349    ) -> ErasedRequest<'a, RepostStory, Self::Err>;
1350
1351    fn post_story(
1352        &self,
1353        business_connection_id: BusinessConnectionId,
1354        content: InputStoryContent,
1355        active_period: Seconds,
1356    ) -> ErasedRequest<'a, PostStory, Self::Err>;
1357
1358    fn edit_story(
1359        &self,
1360        business_connection_id: BusinessConnectionId,
1361        story_id: StoryId,
1362        content: InputStoryContent,
1363    ) -> ErasedRequest<'a, EditStory, Self::Err>;
1364
1365    fn delete_story(
1366        &self,
1367        business_connection_id: BusinessConnectionId,
1368        story_id: StoryId,
1369    ) -> ErasedRequest<'a, DeleteStory, Self::Err>;
1370
1371    fn set_business_account_bio(
1372        &self,
1373        business_connection_id: BusinessConnectionId,
1374    ) -> ErasedRequest<'a, SetBusinessAccountBio, Self::Err>;
1375
1376    fn send_invoice(
1377        &self,
1378        chat_id: Recipient,
1379        title: String,
1380        description: String,
1381        payload: String,
1382        currency: String,
1383        prices: Vec<LabeledPrice>,
1384    ) -> ErasedRequest<'a, SendInvoice, Self::Err>;
1385
1386    fn create_invoice_link(
1387        &self,
1388        title: String,
1389        description: String,
1390        payload: String,
1391        currency: String,
1392        prices: Vec<LabeledPrice>,
1393    ) -> ErasedRequest<'a, CreateInvoiceLink, Self::Err>;
1394
1395    fn answer_shipping_query(
1396        &self,
1397        shipping_query_id: ShippingQueryId,
1398        ok: bool,
1399    ) -> ErasedRequest<'a, AnswerShippingQuery, Self::Err>;
1400
1401    fn answer_pre_checkout_query(
1402        &self,
1403        pre_checkout_query_id: PreCheckoutQueryId,
1404        ok: bool,
1405    ) -> ErasedRequest<'a, AnswerPreCheckoutQuery, Self::Err>;
1406
1407    fn get_my_star_balance(&self) -> ErasedRequest<'a, GetMyStarBalance, Self::Err>;
1408
1409    fn get_star_transactions(&self) -> ErasedRequest<'a, GetStarTransactions, Self::Err>;
1410
1411    fn refund_star_payment(
1412        &self,
1413        user_id: UserId,
1414        telegram_payment_charge_id: TelegramTransactionId,
1415    ) -> ErasedRequest<'a, RefundStarPayment, Self::Err>;
1416
1417    fn edit_user_star_subscription(
1418        &self,
1419        user_id: UserId,
1420        telegram_payment_charge_id: TelegramTransactionId,
1421        is_canceled: bool,
1422    ) -> ErasedRequest<'a, EditUserStarSubscription, Self::Err>;
1423
1424    fn set_passport_data_errors(
1425        &self,
1426        user_id: UserId,
1427        errors: Vec<PassportElementError>,
1428    ) -> ErasedRequest<'a, SetPassportDataErrors, Self::Err>;
1429
1430    fn send_game(
1431        &self,
1432        chat_id: ChatId,
1433        game_short_name: String,
1434    ) -> ErasedRequest<'a, SendGame, Self::Err>;
1435
1436    fn set_game_score(
1437        &self,
1438        user_id: UserId,
1439        score: u64,
1440        chat_id: u32,
1441        message_id: MessageId,
1442    ) -> ErasedRequest<'a, SetGameScore, Self::Err>;
1443
1444    fn set_game_score_inline(
1445        &self,
1446        user_id: UserId,
1447        score: u64,
1448        inline_message_id: String,
1449    ) -> ErasedRequest<'a, SetGameScoreInline, Self::Err>;
1450
1451    fn get_game_high_scores(
1452        &self,
1453        user_id: UserId,
1454        target: TargetMessage,
1455    ) -> ErasedRequest<'a, GetGameHighScores, Self::Err>;
1456}
1457
1458impl<'a, B> ErasableRequester<'a> for B
1459where
1460    B: Requester + 'a,
1461{
1462    type Err = B::Err;
1463
1464    fn get_updates(&self) -> ErasedRequest<'a, GetUpdates, Self::Err> {
1465        Requester::get_updates(self).erase()
1466    }
1467
1468    fn set_webhook(&self, url: Url) -> ErasedRequest<'a, SetWebhook, Self::Err> {
1469        Requester::set_webhook(self, url).erase()
1470    }
1471
1472    fn delete_webhook(&self) -> ErasedRequest<'a, DeleteWebhook, Self::Err> {
1473        Requester::delete_webhook(self).erase()
1474    }
1475
1476    fn get_webhook_info(&self) -> ErasedRequest<'a, GetWebhookInfo, Self::Err> {
1477        Requester::get_webhook_info(self).erase()
1478    }
1479
1480    fn get_me(&self) -> ErasedRequest<'a, GetMe, Self::Err> {
1481        Requester::get_me(self).erase()
1482    }
1483
1484    fn log_out(&self) -> ErasedRequest<'a, LogOut, Self::Err> {
1485        Requester::log_out(self).erase()
1486    }
1487
1488    fn close(&self) -> ErasedRequest<'a, Close, Self::Err> {
1489        Requester::close(self).erase()
1490    }
1491
1492    fn send_message(
1493        &self,
1494        chat_id: Recipient,
1495        text: String,
1496    ) -> ErasedRequest<'a, SendMessage, Self::Err> {
1497        Requester::send_message(self, chat_id, text).erase()
1498    }
1499
1500    fn send_message_draft(
1501        &self,
1502        chat_id: Recipient,
1503        draft_id: DraftId,
1504        text: String,
1505    ) -> ErasedRequest<'a, SendMessageDraft, Self::Err> {
1506        Requester::send_message_draft(self, chat_id, draft_id, text).erase()
1507    }
1508
1509    fn send_rich_message(
1510        &self,
1511        chat_id: Recipient,
1512        rich_message: InputRichMessage,
1513    ) -> ErasedRequest<'a, SendRichMessage, Self::Err> {
1514        Requester::send_rich_message(self, chat_id, rich_message).erase()
1515    }
1516
1517    fn send_rich_message_draft(
1518        &self,
1519        chat_id: Recipient,
1520        draft_id: DraftId,
1521        rich_message: InputRichMessage,
1522    ) -> ErasedRequest<'a, SendRichMessageDraft, Self::Err> {
1523        Requester::send_rich_message_draft(self, chat_id, draft_id, rich_message).erase()
1524    }
1525
1526    fn forward_message(
1527        &self,
1528        chat_id: Recipient,
1529        from_chat_id: Recipient,
1530        message_id: MessageId,
1531    ) -> ErasedRequest<'a, ForwardMessage, Self::Err> {
1532        Requester::forward_message(self, chat_id, from_chat_id, message_id).erase()
1533    }
1534
1535    fn forward_messages(
1536        &self,
1537        chat_id: Recipient,
1538        from_chat_id: Recipient,
1539        message_ids: Vec<MessageId>,
1540    ) -> ErasedRequest<'a, ForwardMessages, Self::Err> {
1541        Requester::forward_messages(self, chat_id, from_chat_id, message_ids).erase()
1542    }
1543
1544    fn copy_message(
1545        &self,
1546        chat_id: Recipient,
1547        from_chat_id: Recipient,
1548        message_id: MessageId,
1549    ) -> ErasedRequest<'a, CopyMessage, Self::Err> {
1550        Requester::copy_message(self, chat_id, from_chat_id, message_id).erase()
1551    }
1552
1553    fn copy_messages(
1554        &self,
1555        chat_id: Recipient,
1556        from_chat_id: Recipient,
1557        message_ids: Vec<MessageId>,
1558    ) -> ErasedRequest<'a, CopyMessages, Self::Err> {
1559        Requester::copy_messages(self, chat_id, from_chat_id, message_ids).erase()
1560    }
1561
1562    fn send_photo(
1563        &self,
1564        chat_id: Recipient,
1565        photo: InputFile,
1566    ) -> ErasedRequest<'a, SendPhoto, Self::Err> {
1567        Requester::send_photo(self, chat_id, photo).erase()
1568    }
1569
1570    fn send_audio(
1571        &self,
1572        chat_id: Recipient,
1573        audio: InputFile,
1574    ) -> ErasedRequest<'a, SendAudio, Self::Err> {
1575        Requester::send_audio(self, chat_id, audio).erase()
1576    }
1577
1578    fn send_document(
1579        &self,
1580        chat_id: Recipient,
1581        document: InputFile,
1582    ) -> ErasedRequest<'a, SendDocument, Self::Err> {
1583        Requester::send_document(self, chat_id, document).erase()
1584    }
1585
1586    fn send_video(
1587        &self,
1588        chat_id: Recipient,
1589        video: InputFile,
1590    ) -> ErasedRequest<'a, SendVideo, Self::Err> {
1591        Requester::send_video(self, chat_id, video).erase()
1592    }
1593
1594    fn send_animation(
1595        &self,
1596        chat_id: Recipient,
1597        animation: InputFile,
1598    ) -> ErasedRequest<'a, SendAnimation, Self::Err> {
1599        Requester::send_animation(self, chat_id, animation).erase()
1600    }
1601
1602    fn send_voice(
1603        &self,
1604        chat_id: Recipient,
1605        voice: InputFile,
1606    ) -> ErasedRequest<'a, SendVoice, Self::Err> {
1607        Requester::send_voice(self, chat_id, voice).erase()
1608    }
1609
1610    fn send_video_note(
1611        &self,
1612        chat_id: Recipient,
1613        video_note: InputFile,
1614    ) -> ErasedRequest<'a, SendVideoNote, Self::Err> {
1615        Requester::send_video_note(self, chat_id, video_note).erase()
1616    }
1617
1618    fn send_paid_media(
1619        &self,
1620        chat_id: Recipient,
1621        star_count: u32,
1622        media: Vec<InputPaidMedia>,
1623    ) -> ErasedRequest<'a, SendPaidMedia, Self::Err> {
1624        Requester::send_paid_media(self, chat_id, star_count, media).erase()
1625    }
1626
1627    fn send_media_group(
1628        &self,
1629        chat_id: Recipient,
1630        media: Vec<InputMedia>,
1631    ) -> ErasedRequest<'a, SendMediaGroup, Self::Err> {
1632        Requester::send_media_group(self, chat_id, media).erase()
1633    }
1634
1635    fn send_location(
1636        &self,
1637        chat_id: Recipient,
1638        latitude: f64,
1639        longitude: f64,
1640    ) -> ErasedRequest<'a, SendLocation, Self::Err> {
1641        Requester::send_location(self, chat_id, latitude, longitude).erase()
1642    }
1643
1644    fn edit_message_live_location(
1645        &self,
1646        chat_id: Recipient,
1647        message_id: MessageId,
1648        latitude: f64,
1649        longitude: f64,
1650    ) -> ErasedRequest<'a, EditMessageLiveLocation, Self::Err> {
1651        Requester::edit_message_live_location(self, chat_id, message_id, latitude, longitude)
1652            .erase()
1653    }
1654
1655    fn edit_message_live_location_inline(
1656        &self,
1657        inline_message_id: String,
1658        latitude: f64,
1659        longitude: f64,
1660    ) -> ErasedRequest<'a, EditMessageLiveLocationInline, Self::Err> {
1661        Requester::edit_message_live_location_inline(self, inline_message_id, latitude, longitude)
1662            .erase()
1663    }
1664
1665    fn stop_message_live_location(
1666        &self,
1667        chat_id: Recipient,
1668        message_id: MessageId,
1669    ) -> ErasedRequest<'a, StopMessageLiveLocation, Self::Err> {
1670        Requester::stop_message_live_location(self, chat_id, message_id).erase()
1671    }
1672
1673    fn stop_message_live_location_inline(
1674        &self,
1675        inline_message_id: String,
1676    ) -> ErasedRequest<'a, StopMessageLiveLocationInline, Self::Err> {
1677        Requester::stop_message_live_location_inline(self, inline_message_id).erase()
1678    }
1679
1680    fn edit_message_checklist(
1681        &self,
1682        business_connection_id: BusinessConnectionId,
1683        chat_id: ChatId,
1684        message_id: MessageId,
1685        checklist: InputChecklist,
1686    ) -> ErasedRequest<'a, EditMessageChecklist, Self::Err> {
1687        Requester::edit_message_checklist(
1688            self,
1689            business_connection_id,
1690            chat_id,
1691            message_id,
1692            checklist,
1693        )
1694        .erase()
1695    }
1696
1697    fn send_venue(
1698        &self,
1699        chat_id: Recipient,
1700        latitude: f64,
1701        longitude: f64,
1702        title: String,
1703        address: String,
1704    ) -> ErasedRequest<'a, SendVenue, Self::Err> {
1705        Requester::send_venue(self, chat_id, latitude, longitude, title, address).erase()
1706    }
1707
1708    fn send_contact(
1709        &self,
1710        chat_id: Recipient,
1711        phone_number: String,
1712        first_name: String,
1713    ) -> ErasedRequest<'a, SendContact, Self::Err> {
1714        Requester::send_contact(self, chat_id, phone_number, first_name).erase()
1715    }
1716
1717    fn send_poll(
1718        &self,
1719        chat_id: Recipient,
1720        question: String,
1721        options: Vec<InputPollOption>,
1722    ) -> ErasedRequest<'a, SendPoll, Self::Err> {
1723        Requester::send_poll(self, chat_id, question, options).erase()
1724    }
1725
1726    fn send_checklist(
1727        &self,
1728        business_connection_id: BusinessConnectionId,
1729        chat_id: ChatId,
1730        checklist: InputChecklist,
1731    ) -> ErasedRequest<'a, SendChecklist, Self::Err> {
1732        Requester::send_checklist(self, business_connection_id, chat_id, checklist).erase()
1733    }
1734
1735    fn send_dice(&self, chat_id: Recipient) -> ErasedRequest<'a, SendDice, Self::Err> {
1736        Requester::send_dice(self, chat_id).erase()
1737    }
1738
1739    fn send_chat_action(
1740        &self,
1741        chat_id: Recipient,
1742        action: ChatAction,
1743    ) -> ErasedRequest<'a, SendChatAction, Self::Err> {
1744        Requester::send_chat_action(self, chat_id, action).erase()
1745    }
1746
1747    fn set_message_reaction(
1748        &self,
1749        chat_id: Recipient,
1750        message_id: MessageId,
1751    ) -> ErasedRequest<'a, SetMessageReaction, Self::Err> {
1752        Requester::set_message_reaction(self, chat_id, message_id).erase()
1753    }
1754
1755    fn get_user_profile_photos(
1756        &self,
1757        user_id: UserId,
1758    ) -> ErasedRequest<'a, GetUserProfilePhotos, Self::Err> {
1759        Requester::get_user_profile_photos(self, user_id).erase()
1760    }
1761
1762    fn get_user_profile_audios(
1763        &self,
1764        user_id: UserId,
1765    ) -> ErasedRequest<'a, GetUserProfileAudios, Self::Err> {
1766        Requester::get_user_profile_audios(self, user_id).erase()
1767    }
1768
1769    fn set_user_emoji_status(
1770        &self,
1771        user_id: UserId,
1772    ) -> ErasedRequest<'a, SetUserEmojiStatus, Self::Err> {
1773        Requester::set_user_emoji_status(self, user_id).erase()
1774    }
1775
1776    fn get_file(&self, file_id: FileId) -> ErasedRequest<'a, GetFile, Self::Err> {
1777        Requester::get_file(self, file_id).erase()
1778    }
1779
1780    fn ban_chat_member(
1781        &self,
1782        chat_id: Recipient,
1783        user_id: UserId,
1784    ) -> ErasedRequest<'a, BanChatMember, Self::Err> {
1785        Requester::ban_chat_member(self, chat_id, user_id).erase()
1786    }
1787
1788    fn kick_chat_member(
1789        &self,
1790        chat_id: Recipient,
1791        user_id: UserId,
1792    ) -> ErasedRequest<'a, KickChatMember, Self::Err> {
1793        Requester::kick_chat_member(self, chat_id, user_id).erase()
1794    }
1795
1796    fn unban_chat_member(
1797        &self,
1798        chat_id: Recipient,
1799        user_id: UserId,
1800    ) -> ErasedRequest<'a, UnbanChatMember, Self::Err> {
1801        Requester::unban_chat_member(self, chat_id, user_id).erase()
1802    }
1803
1804    fn restrict_chat_member(
1805        &self,
1806        chat_id: Recipient,
1807        user_id: UserId,
1808        permissions: ChatPermissions,
1809    ) -> ErasedRequest<'a, RestrictChatMember, Self::Err> {
1810        Requester::restrict_chat_member(self, chat_id, user_id, permissions).erase()
1811    }
1812
1813    fn promote_chat_member(
1814        &self,
1815        chat_id: Recipient,
1816        user_id: UserId,
1817    ) -> ErasedRequest<'a, PromoteChatMember, Self::Err> {
1818        Requester::promote_chat_member(self, chat_id, user_id).erase()
1819    }
1820
1821    fn set_chat_administrator_custom_title(
1822        &self,
1823        chat_id: Recipient,
1824        user_id: UserId,
1825        custom_title: String,
1826    ) -> ErasedRequest<'a, SetChatAdministratorCustomTitle, Self::Err> {
1827        Requester::set_chat_administrator_custom_title(self, chat_id, user_id, custom_title).erase()
1828    }
1829
1830    fn set_chat_member_tag(
1831        &self,
1832        chat_id: Recipient,
1833        user_id: UserId,
1834    ) -> ErasedRequest<'a, SetChatMemberTag, Self::Err> {
1835        Requester::set_chat_member_tag(self, chat_id, user_id).erase()
1836    }
1837
1838    fn ban_chat_sender_chat(
1839        &self,
1840        chat_id: Recipient,
1841        sender_chat_id: ChatId,
1842    ) -> ErasedRequest<'a, BanChatSenderChat, Self::Err> {
1843        Requester::ban_chat_sender_chat(self, chat_id, sender_chat_id).erase()
1844    }
1845
1846    fn unban_chat_sender_chat(
1847        &self,
1848        chat_id: Recipient,
1849        sender_chat_id: ChatId,
1850    ) -> ErasedRequest<'a, UnbanChatSenderChat, Self::Err> {
1851        Requester::unban_chat_sender_chat(self, chat_id, sender_chat_id).erase()
1852    }
1853
1854    fn set_chat_permissions(
1855        &self,
1856        chat_id: Recipient,
1857        permissions: ChatPermissions,
1858    ) -> ErasedRequest<'a, SetChatPermissions, Self::Err> {
1859        Requester::set_chat_permissions(self, chat_id, permissions).erase()
1860    }
1861
1862    fn export_chat_invite_link(
1863        &self,
1864        chat_id: Recipient,
1865    ) -> ErasedRequest<'a, ExportChatInviteLink, Self::Err> {
1866        Requester::export_chat_invite_link(self, chat_id).erase()
1867    }
1868
1869    fn create_chat_invite_link(
1870        &self,
1871        chat_id: Recipient,
1872    ) -> ErasedRequest<'a, CreateChatInviteLink, Self::Err> {
1873        Requester::create_chat_invite_link(self, chat_id).erase()
1874    }
1875
1876    fn edit_chat_invite_link(
1877        &self,
1878        chat_id: Recipient,
1879        invite_link: String,
1880    ) -> ErasedRequest<'a, EditChatInviteLink, Self::Err> {
1881        Requester::edit_chat_invite_link(self, chat_id, invite_link).erase()
1882    }
1883
1884    fn create_chat_subscription_invite_link(
1885        &self,
1886        chat_id: Recipient,
1887        subscription_period: Seconds,
1888        subscription_price: u32,
1889    ) -> ErasedRequest<'a, CreateChatSubscriptionInviteLink, Self::Err> {
1890        Requester::create_chat_subscription_invite_link(
1891            self,
1892            chat_id,
1893            subscription_period,
1894            subscription_price,
1895        )
1896        .erase()
1897    }
1898
1899    fn edit_chat_subscription_invite_link(
1900        &self,
1901        chat_id: Recipient,
1902        invite_link: String,
1903    ) -> ErasedRequest<'a, EditChatSubscriptionInviteLink, Self::Err> {
1904        Requester::edit_chat_subscription_invite_link(self, chat_id, invite_link).erase()
1905    }
1906
1907    fn revoke_chat_invite_link(
1908        &self,
1909        chat_id: Recipient,
1910        invite_link: String,
1911    ) -> ErasedRequest<'a, RevokeChatInviteLink, Self::Err> {
1912        Requester::revoke_chat_invite_link(self, chat_id, invite_link).erase()
1913    }
1914
1915    /// For Telegram documentation see [`ApproveChatJoinRequest`].
1916    fn approve_chat_join_request(
1917        &self,
1918        chat_id: Recipient,
1919        user_id: UserId,
1920    ) -> ErasedRequest<'a, ApproveChatJoinRequest, Self::Err> {
1921        Requester::approve_chat_join_request(self, chat_id, user_id).erase()
1922    }
1923
1924    /// For Telegram documentation see [`DeclineChatJoinRequest`].
1925    fn decline_chat_join_request(
1926        &self,
1927        chat_id: Recipient,
1928        user_id: UserId,
1929    ) -> ErasedRequest<'a, DeclineChatJoinRequest, Self::Err> {
1930        Requester::decline_chat_join_request(self, chat_id, user_id).erase()
1931    }
1932
1933    fn answer_chat_join_request_query(
1934        &self,
1935        chat_join_request_query_id: String,
1936        result: String,
1937    ) -> ErasedRequest<'a, AnswerChatJoinRequestQuery, Self::Err> {
1938        Requester::answer_chat_join_request_query(self, chat_join_request_query_id, result).erase()
1939    }
1940
1941    fn send_chat_join_request_web_app(
1942        &self,
1943        chat_join_request_query_id: String,
1944        web_app_url: String,
1945    ) -> ErasedRequest<'a, SendChatJoinRequestWebApp, Self::Err> {
1946        Requester::send_chat_join_request_web_app(self, chat_join_request_query_id, web_app_url)
1947            .erase()
1948    }
1949
1950    fn edit_ephemeral_message_text(
1951        &self,
1952        chat_id: Recipient,
1953        receiver_user_id: UserId,
1954        ephemeral_message_id: MessageId,
1955    ) -> ErasedRequest<'a, EditEphemeralMessageText, Self::Err> {
1956        Requester::edit_ephemeral_message_text(
1957            self,
1958            chat_id,
1959            receiver_user_id,
1960            ephemeral_message_id,
1961        )
1962        .erase()
1963    }
1964
1965    fn edit_ephemeral_message_media(
1966        &self,
1967        chat_id: Recipient,
1968        receiver_user_id: UserId,
1969        ephemeral_message_id: MessageId,
1970        media: InputMedia,
1971    ) -> ErasedRequest<'a, EditEphemeralMessageMedia, Self::Err> {
1972        Requester::edit_ephemeral_message_media(
1973            self,
1974            chat_id,
1975            receiver_user_id,
1976            ephemeral_message_id,
1977            media,
1978        )
1979        .erase()
1980    }
1981
1982    fn edit_ephemeral_message_caption(
1983        &self,
1984        chat_id: Recipient,
1985        receiver_user_id: UserId,
1986        ephemeral_message_id: MessageId,
1987    ) -> ErasedRequest<'a, EditEphemeralMessageCaption, Self::Err> {
1988        Requester::edit_ephemeral_message_caption(
1989            self,
1990            chat_id,
1991            receiver_user_id,
1992            ephemeral_message_id,
1993        )
1994        .erase()
1995    }
1996
1997    fn edit_ephemeral_message_reply_markup(
1998        &self,
1999        chat_id: Recipient,
2000        receiver_user_id: UserId,
2001        ephemeral_message_id: MessageId,
2002    ) -> ErasedRequest<'a, EditEphemeralMessageReplyMarkup, Self::Err> {
2003        Requester::edit_ephemeral_message_reply_markup(
2004            self,
2005            chat_id,
2006            receiver_user_id,
2007            ephemeral_message_id,
2008        )
2009        .erase()
2010    }
2011
2012    fn delete_ephemeral_message(
2013        &self,
2014        chat_id: Recipient,
2015        receiver_user_id: UserId,
2016        ephemeral_message_id: MessageId,
2017    ) -> ErasedRequest<'a, DeleteEphemeralMessage, Self::Err> {
2018        Requester::delete_ephemeral_message(self, chat_id, receiver_user_id, ephemeral_message_id)
2019            .erase()
2020    }
2021
2022    fn set_chat_photo(
2023        &self,
2024        chat_id: Recipient,
2025        photo: InputFile,
2026    ) -> ErasedRequest<'a, SetChatPhoto, Self::Err> {
2027        Requester::set_chat_photo(self, chat_id, photo).erase()
2028    }
2029
2030    fn delete_chat_photo(
2031        &self,
2032        chat_id: Recipient,
2033    ) -> ErasedRequest<'a, DeleteChatPhoto, Self::Err> {
2034        Requester::delete_chat_photo(self, chat_id).erase()
2035    }
2036
2037    fn set_chat_title(
2038        &self,
2039        chat_id: Recipient,
2040        title: String,
2041    ) -> ErasedRequest<'a, SetChatTitle, Self::Err> {
2042        Requester::set_chat_title(self, chat_id, title).erase()
2043    }
2044
2045    fn set_chat_description(
2046        &self,
2047        chat_id: Recipient,
2048    ) -> ErasedRequest<'a, SetChatDescription, Self::Err> {
2049        Requester::set_chat_description(self, chat_id).erase()
2050    }
2051
2052    fn pin_chat_message(
2053        &self,
2054        chat_id: Recipient,
2055        message_id: MessageId,
2056    ) -> ErasedRequest<'a, PinChatMessage, Self::Err> {
2057        Requester::pin_chat_message(self, chat_id, message_id).erase()
2058    }
2059
2060    fn unpin_chat_message(
2061        &self,
2062        chat_id: Recipient,
2063    ) -> ErasedRequest<'a, UnpinChatMessage, Self::Err> {
2064        Requester::unpin_chat_message(self, chat_id).erase()
2065    }
2066
2067    fn unpin_all_chat_messages(
2068        &self,
2069        chat_id: Recipient,
2070    ) -> ErasedRequest<'a, UnpinAllChatMessages, Self::Err> {
2071        Requester::unpin_all_chat_messages(self, chat_id).erase()
2072    }
2073
2074    fn leave_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, LeaveChat, Self::Err> {
2075        Requester::leave_chat(self, chat_id).erase()
2076    }
2077
2078    fn get_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, GetChat, Self::Err> {
2079        Requester::get_chat(self, chat_id).erase()
2080    }
2081
2082    fn get_chat_administrators(
2083        &self,
2084        chat_id: Recipient,
2085    ) -> ErasedRequest<'a, GetChatAdministrators, Self::Err> {
2086        Requester::get_chat_administrators(self, chat_id).erase()
2087    }
2088
2089    fn get_chat_member_count(
2090        &self,
2091        chat_id: Recipient,
2092    ) -> ErasedRequest<'a, GetChatMemberCount, Self::Err> {
2093        Requester::get_chat_member_count(self, chat_id).erase()
2094    }
2095
2096    fn get_chat_members_count(
2097        &self,
2098        chat_id: Recipient,
2099    ) -> ErasedRequest<'a, GetChatMembersCount, Self::Err> {
2100        Requester::get_chat_members_count(self, chat_id).erase()
2101    }
2102
2103    fn get_chat_member(
2104        &self,
2105        chat_id: Recipient,
2106        user_id: UserId,
2107    ) -> ErasedRequest<'a, GetChatMember, Self::Err> {
2108        Requester::get_chat_member(self, chat_id, user_id).erase()
2109    }
2110
2111    fn set_chat_sticker_set(
2112        &self,
2113        chat_id: Recipient,
2114        sticker_set_name: String,
2115    ) -> ErasedRequest<'a, SetChatStickerSet, Self::Err> {
2116        Requester::set_chat_sticker_set(self, chat_id, sticker_set_name).erase()
2117    }
2118
2119    fn delete_chat_sticker_set(
2120        &self,
2121        chat_id: Recipient,
2122    ) -> ErasedRequest<'a, DeleteChatStickerSet, Self::Err> {
2123        Requester::delete_chat_sticker_set(self, chat_id).erase()
2124    }
2125
2126    fn get_forum_topic_icon_stickers(
2127        &self,
2128    ) -> ErasedRequest<'a, GetForumTopicIconStickers, Self::Err> {
2129        Requester::get_forum_topic_icon_stickers(self).erase()
2130    }
2131
2132    fn create_forum_topic(
2133        &self,
2134        chat_id: Recipient,
2135        name: String,
2136    ) -> ErasedRequest<'a, CreateForumTopic, Self::Err> {
2137        Requester::create_forum_topic(self, chat_id, name).erase()
2138    }
2139
2140    fn edit_forum_topic(
2141        &self,
2142        chat_id: Recipient,
2143        message_thread_id: ThreadId,
2144    ) -> ErasedRequest<'a, EditForumTopic, Self::Err> {
2145        Requester::edit_forum_topic(self, chat_id, message_thread_id).erase()
2146    }
2147
2148    fn close_forum_topic(
2149        &self,
2150        chat_id: Recipient,
2151        message_thread_id: ThreadId,
2152    ) -> ErasedRequest<'a, CloseForumTopic, Self::Err> {
2153        Requester::close_forum_topic(self, chat_id, message_thread_id).erase()
2154    }
2155
2156    fn reopen_forum_topic(
2157        &self,
2158        chat_id: Recipient,
2159        message_thread_id: ThreadId,
2160    ) -> ErasedRequest<'a, ReopenForumTopic, Self::Err> {
2161        Requester::reopen_forum_topic(self, chat_id, message_thread_id).erase()
2162    }
2163
2164    fn delete_forum_topic(
2165        &self,
2166        chat_id: Recipient,
2167        message_thread_id: ThreadId,
2168    ) -> ErasedRequest<'a, DeleteForumTopic, Self::Err> {
2169        Requester::delete_forum_topic(self, chat_id, message_thread_id).erase()
2170    }
2171
2172    fn unpin_all_forum_topic_messages(
2173        &self,
2174        chat_id: Recipient,
2175        message_thread_id: ThreadId,
2176    ) -> ErasedRequest<'a, UnpinAllForumTopicMessages, Self::Err> {
2177        Requester::unpin_all_forum_topic_messages(self, chat_id, message_thread_id).erase()
2178    }
2179
2180    fn edit_general_forum_topic(
2181        &self,
2182        chat_id: Recipient,
2183        name: String,
2184    ) -> ErasedRequest<'a, EditGeneralForumTopic, Self::Err> {
2185        Requester::edit_general_forum_topic(self, chat_id, name).erase()
2186    }
2187
2188    fn close_general_forum_topic(
2189        &self,
2190        chat_id: Recipient,
2191    ) -> ErasedRequest<'a, CloseGeneralForumTopic, Self::Err> {
2192        Requester::close_general_forum_topic(self, chat_id).erase()
2193    }
2194
2195    fn reopen_general_forum_topic(
2196        &self,
2197        chat_id: Recipient,
2198    ) -> ErasedRequest<'a, ReopenGeneralForumTopic, Self::Err> {
2199        Requester::reopen_general_forum_topic(self, chat_id).erase()
2200    }
2201
2202    fn hide_general_forum_topic(
2203        &self,
2204        chat_id: Recipient,
2205    ) -> ErasedRequest<'a, HideGeneralForumTopic, Self::Err> {
2206        Requester::hide_general_forum_topic(self, chat_id).erase()
2207    }
2208
2209    fn unhide_general_forum_topic(
2210        &self,
2211        chat_id: Recipient,
2212    ) -> ErasedRequest<'a, UnhideGeneralForumTopic, Self::Err> {
2213        Requester::unhide_general_forum_topic(self, chat_id).erase()
2214    }
2215
2216    fn unpin_all_general_forum_topic_messages(
2217        &self,
2218        chat_id: Recipient,
2219    ) -> ErasedRequest<'a, UnpinAllGeneralForumTopicMessages, Self::Err> {
2220        Requester::unpin_all_general_forum_topic_messages(self, chat_id).erase()
2221    }
2222
2223    fn answer_callback_query(
2224        &self,
2225        callback_query_id: CallbackQueryId,
2226    ) -> ErasedRequest<'a, AnswerCallbackQuery, Self::Err> {
2227        Requester::answer_callback_query(self, callback_query_id).erase()
2228    }
2229
2230    fn get_user_chat_boosts(
2231        &self,
2232        chat_id: Recipient,
2233        user_id: UserId,
2234    ) -> ErasedRequest<'a, GetUserChatBoosts, Self::Err> {
2235        Requester::get_user_chat_boosts(self, chat_id, user_id).erase()
2236    }
2237
2238    fn set_my_commands(
2239        &self,
2240        commands: Vec<BotCommand>,
2241    ) -> ErasedRequest<'a, SetMyCommands, Self::Err> {
2242        Requester::set_my_commands(self, commands).erase()
2243    }
2244
2245    fn get_business_connection(
2246        &self,
2247        business_connection_id: BusinessConnectionId,
2248    ) -> ErasedRequest<'a, GetBusinessConnection, Self::Err> {
2249        Requester::get_business_connection(self, business_connection_id).erase()
2250    }
2251
2252    fn get_my_commands(&self) -> ErasedRequest<'a, GetMyCommands, Self::Err> {
2253        Requester::get_my_commands(self).erase()
2254    }
2255
2256    fn set_my_name(&self) -> ErasedRequest<'a, SetMyName, Self::Err> {
2257        Requester::set_my_name(self).erase()
2258    }
2259
2260    fn get_my_name(&self) -> ErasedRequest<'a, GetMyName, Self::Err> {
2261        Requester::get_my_name(self).erase()
2262    }
2263
2264    fn set_my_description(&self) -> ErasedRequest<'a, SetMyDescription, Self::Err> {
2265        Requester::set_my_description(self).erase()
2266    }
2267
2268    fn get_my_description(&self) -> ErasedRequest<'a, GetMyDescription, Self::Err> {
2269        Requester::get_my_description(self).erase()
2270    }
2271
2272    fn set_my_short_description(&self) -> ErasedRequest<'a, SetMyShortDescription, Self::Err> {
2273        Requester::set_my_short_description(self).erase()
2274    }
2275
2276    fn get_my_short_description(&self) -> ErasedRequest<'a, GetMyShortDescription, Self::Err> {
2277        Requester::get_my_short_description(self).erase()
2278    }
2279
2280    fn set_my_profile_photo(
2281        &self,
2282        photo: InputProfilePhoto,
2283    ) -> ErasedRequest<'a, SetMyProfilePhoto, Self::Err> {
2284        Requester::set_my_profile_photo(self, photo).erase()
2285    }
2286
2287    fn remove_my_profile_photo(&self) -> ErasedRequest<'a, RemoveMyProfilePhoto, Self::Err> {
2288        Requester::remove_my_profile_photo(self).erase()
2289    }
2290
2291    fn get_managed_bot_token(
2292        &self,
2293        user_id: UserId,
2294    ) -> ErasedRequest<'a, GetManagedBotToken, Self::Err> {
2295        Requester::get_managed_bot_token(self, user_id).erase()
2296    }
2297
2298    fn replace_managed_bot_token(
2299        &self,
2300        user_id: UserId,
2301    ) -> ErasedRequest<'a, ReplaceManagedBotToken, Self::Err> {
2302        Requester::replace_managed_bot_token(self, user_id).erase()
2303    }
2304
2305    fn save_prepared_keyboard_button(
2306        &self,
2307        user_id: UserId,
2308        button: KeyboardButton,
2309    ) -> ErasedRequest<'a, SavePreparedKeyboardButton, Self::Err> {
2310        Requester::save_prepared_keyboard_button(self, user_id, button).erase()
2311    }
2312
2313    fn send_live_photo(
2314        &self,
2315        chat_id: Recipient,
2316        live_photo: InputFile,
2317        photo: InputFile,
2318    ) -> ErasedRequest<'a, SendLivePhoto, Self::Err> {
2319        Requester::send_live_photo(self, chat_id, live_photo, photo).erase()
2320    }
2321
2322    fn get_user_personal_chat_messages(
2323        &self,
2324        user_id: UserId,
2325        limit: u8,
2326    ) -> ErasedRequest<'a, GetUserPersonalChatMessages, Self::Err> {
2327        Requester::get_user_personal_chat_messages(self, user_id, limit).erase()
2328    }
2329
2330    fn answer_guest_query(
2331        &self,
2332        guest_query_id: GuestQueryId,
2333        result: InlineQueryResult,
2334    ) -> ErasedRequest<'a, AnswerGuestQuery, Self::Err> {
2335        Requester::answer_guest_query(self, guest_query_id, result).erase()
2336    }
2337
2338    fn get_managed_bot_access_settings(
2339        &self,
2340        user_id: UserId,
2341    ) -> ErasedRequest<'a, GetManagedBotAccessSettings, Self::Err> {
2342        Requester::get_managed_bot_access_settings(self, user_id).erase()
2343    }
2344
2345    fn set_managed_bot_access_settings(
2346        &self,
2347        user_id: UserId,
2348        is_access_restricted: bool,
2349    ) -> ErasedRequest<'a, SetManagedBotAccessSettings, Self::Err> {
2350        Requester::set_managed_bot_access_settings(self, user_id, is_access_restricted).erase()
2351    }
2352
2353    fn delete_message_reaction(
2354        &self,
2355        chat_id: Recipient,
2356        message_id: i32,
2357    ) -> ErasedRequest<'a, DeleteMessageReaction, Self::Err> {
2358        Requester::delete_message_reaction(self, chat_id, message_id).erase()
2359    }
2360
2361    fn delete_all_message_reactions(
2362        &self,
2363        chat_id: Recipient,
2364    ) -> ErasedRequest<'a, DeleteAllMessageReactions, Self::Err> {
2365        Requester::delete_all_message_reactions(self, chat_id).erase()
2366    }
2367
2368    fn set_chat_menu_button(&self) -> ErasedRequest<'a, SetChatMenuButton, Self::Err> {
2369        Requester::set_chat_menu_button(self).erase()
2370    }
2371
2372    fn get_chat_menu_button(&self) -> ErasedRequest<'a, GetChatMenuButton, Self::Err> {
2373        Requester::get_chat_menu_button(self).erase()
2374    }
2375
2376    fn set_my_default_administrator_rights(
2377        &self,
2378    ) -> ErasedRequest<'a, SetMyDefaultAdministratorRights, Self::Err> {
2379        Requester::set_my_default_administrator_rights(self).erase()
2380    }
2381
2382    fn get_my_default_administrator_rights(
2383        &self,
2384    ) -> ErasedRequest<'a, GetMyDefaultAdministratorRights, Self::Err> {
2385        Requester::get_my_default_administrator_rights(self).erase()
2386    }
2387
2388    fn delete_my_commands(&self) -> ErasedRequest<'a, DeleteMyCommands, Self::Err> {
2389        Requester::delete_my_commands(self).erase()
2390    }
2391
2392    fn answer_inline_query(
2393        &self,
2394        inline_query_id: InlineQueryId,
2395        results: Vec<InlineQueryResult>,
2396    ) -> ErasedRequest<'a, AnswerInlineQuery, Self::Err> {
2397        Requester::answer_inline_query(self, inline_query_id, results).erase()
2398    }
2399
2400    fn answer_web_app_query(
2401        &self,
2402        web_app_query_id: String,
2403        result: InlineQueryResult,
2404    ) -> ErasedRequest<'a, AnswerWebAppQuery, Self::Err> {
2405        Requester::answer_web_app_query(self, web_app_query_id, result).erase()
2406    }
2407
2408    fn save_prepared_inline_message(
2409        &self,
2410        user_id: UserId,
2411        result: InlineQueryResult,
2412    ) -> ErasedRequest<'a, SavePreparedInlineMessage, Self::Err> {
2413        Requester::save_prepared_inline_message(self, user_id, result).erase()
2414    }
2415
2416    fn edit_message_text(
2417        &self,
2418        chat_id: Recipient,
2419        message_id: MessageId,
2420        text: String,
2421    ) -> ErasedRequest<'a, EditMessageText, Self::Err> {
2422        Requester::edit_message_text(self, chat_id, message_id, text).erase()
2423    }
2424
2425    fn edit_message_text_inline(
2426        &self,
2427        inline_message_id: String,
2428        text: String,
2429    ) -> ErasedRequest<'a, EditMessageTextInline, Self::Err> {
2430        Requester::edit_message_text_inline(self, inline_message_id, text).erase()
2431    }
2432
2433    fn edit_message_caption(
2434        &self,
2435        chat_id: Recipient,
2436        message_id: MessageId,
2437    ) -> ErasedRequest<'a, EditMessageCaption, Self::Err> {
2438        Requester::edit_message_caption(self, chat_id, message_id).erase()
2439    }
2440
2441    fn edit_message_caption_inline(
2442        &self,
2443        inline_message_id: String,
2444    ) -> ErasedRequest<'a, EditMessageCaptionInline, Self::Err> {
2445        Requester::edit_message_caption_inline(self, inline_message_id).erase()
2446    }
2447
2448    fn edit_message_media(
2449        &self,
2450        chat_id: Recipient,
2451        message_id: MessageId,
2452        media: InputMedia,
2453    ) -> ErasedRequest<'a, EditMessageMedia, Self::Err> {
2454        Requester::edit_message_media(self, chat_id, message_id, media).erase()
2455    }
2456
2457    fn edit_message_media_inline(
2458        &self,
2459        inline_message_id: String,
2460        media: InputMedia,
2461    ) -> ErasedRequest<'a, EditMessageMediaInline, Self::Err> {
2462        Requester::edit_message_media_inline(self, inline_message_id, media).erase()
2463    }
2464
2465    fn edit_message_reply_markup(
2466        &self,
2467        chat_id: Recipient,
2468        message_id: MessageId,
2469    ) -> ErasedRequest<'a, EditMessageReplyMarkup, Self::Err> {
2470        Requester::edit_message_reply_markup(self, chat_id, message_id).erase()
2471    }
2472
2473    fn edit_message_reply_markup_inline(
2474        &self,
2475        inline_message_id: String,
2476    ) -> ErasedRequest<'a, EditMessageReplyMarkupInline, Self::Err> {
2477        Requester::edit_message_reply_markup_inline(self, inline_message_id).erase()
2478    }
2479
2480    fn stop_poll(
2481        &self,
2482        chat_id: Recipient,
2483        message_id: MessageId,
2484    ) -> ErasedRequest<'a, StopPoll, Self::Err> {
2485        Requester::stop_poll(self, chat_id, message_id).erase()
2486    }
2487
2488    fn approve_suggested_post(
2489        &self,
2490        chat_id: ChatId,
2491        message_id: MessageId,
2492    ) -> ErasedRequest<'a, ApproveSuggestedPost, Self::Err> {
2493        Requester::approve_suggested_post(self, chat_id, message_id).erase()
2494    }
2495
2496    fn decline_suggested_post(
2497        &self,
2498        chat_id: ChatId,
2499        message_id: MessageId,
2500    ) -> ErasedRequest<'a, DeclineSuggestedPost, Self::Err> {
2501        Requester::decline_suggested_post(self, chat_id, message_id).erase()
2502    }
2503
2504    fn delete_message(
2505        &self,
2506        chat_id: Recipient,
2507        message_id: MessageId,
2508    ) -> ErasedRequest<'a, DeleteMessage, Self::Err> {
2509        Requester::delete_message(self, chat_id, message_id).erase()
2510    }
2511
2512    fn delete_messages(
2513        &self,
2514        chat_id: Recipient,
2515        message_ids: Vec<MessageId>,
2516    ) -> ErasedRequest<'a, DeleteMessages, Self::Err> {
2517        Requester::delete_messages(self, chat_id, message_ids).erase()
2518    }
2519
2520    fn send_sticker(
2521        &self,
2522        chat_id: Recipient,
2523        sticker: InputFile,
2524    ) -> ErasedRequest<'a, SendSticker, Self::Err> {
2525        Requester::send_sticker(self, chat_id, sticker).erase()
2526    }
2527
2528    fn get_sticker_set(&self, name: String) -> ErasedRequest<'a, GetStickerSet, Self::Err> {
2529        Requester::get_sticker_set(self, name).erase()
2530    }
2531
2532    fn get_custom_emoji_stickers(
2533        &self,
2534        custom_emoji_ids: Vec<CustomEmojiId>,
2535    ) -> ErasedRequest<'a, GetCustomEmojiStickers, Self::Err> {
2536        Requester::get_custom_emoji_stickers(self, custom_emoji_ids).erase()
2537    }
2538
2539    fn upload_sticker_file(
2540        &self,
2541        user_id: UserId,
2542        sticker: InputFile,
2543        sticker_format: StickerFormat,
2544    ) -> ErasedRequest<'a, UploadStickerFile, Self::Err> {
2545        Requester::upload_sticker_file(self, user_id, sticker, sticker_format).erase()
2546    }
2547
2548    fn create_new_sticker_set(
2549        &self,
2550        user_id: UserId,
2551        name: String,
2552        title: String,
2553        stickers: Vec<InputSticker>,
2554    ) -> ErasedRequest<'a, CreateNewStickerSet, Self::Err> {
2555        Requester::create_new_sticker_set(self, user_id, name, title, stickers).erase()
2556    }
2557
2558    fn add_sticker_to_set(
2559        &self,
2560        user_id: UserId,
2561        name: String,
2562        sticker: InputSticker,
2563    ) -> ErasedRequest<'a, AddStickerToSet, Self::Err> {
2564        Requester::add_sticker_to_set(self, user_id, name, sticker).erase()
2565    }
2566
2567    fn set_sticker_position_in_set(
2568        &self,
2569        sticker: String,
2570        position: u32,
2571    ) -> ErasedRequest<'a, SetStickerPositionInSet, Self::Err> {
2572        Requester::set_sticker_position_in_set(self, sticker, position).erase()
2573    }
2574
2575    fn delete_sticker_from_set(
2576        &self,
2577        sticker: String,
2578    ) -> ErasedRequest<'a, DeleteStickerFromSet, Self::Err> {
2579        Requester::delete_sticker_from_set(self, sticker).erase()
2580    }
2581
2582    fn replace_sticker_in_set(
2583        &self,
2584        user_id: UserId,
2585        name: String,
2586        old_sticker: String,
2587        sticker: InputSticker,
2588    ) -> ErasedRequest<'a, ReplaceStickerInSet, Self::Err> {
2589        Requester::replace_sticker_in_set(self, user_id, name, old_sticker, sticker).erase()
2590    }
2591
2592    fn set_sticker_set_thumbnail(
2593        &self,
2594        name: String,
2595        user_id: UserId,
2596        format: StickerFormat,
2597    ) -> ErasedRequest<'a, SetStickerSetThumbnail, Self::Err> {
2598        Requester::set_sticker_set_thumbnail(self, name, user_id, format).erase()
2599    }
2600
2601    fn set_custom_emoji_sticker_set_thumbnail(
2602        &self,
2603        name: String,
2604    ) -> ErasedRequest<'a, SetCustomEmojiStickerSetThumbnail, Self::Err> {
2605        Requester::set_custom_emoji_sticker_set_thumbnail(self, name).erase()
2606    }
2607
2608    fn set_sticker_set_title(
2609        &self,
2610        name: String,
2611        title: String,
2612    ) -> ErasedRequest<'a, SetStickerSetTitle, Self::Err> {
2613        Requester::set_sticker_set_title(self, name, title).erase()
2614    }
2615
2616    fn delete_sticker_set(&self, name: String) -> ErasedRequest<'a, DeleteStickerSet, Self::Err> {
2617        Requester::delete_sticker_set(self, name).erase()
2618    }
2619
2620    fn set_sticker_emoji_list(
2621        &self,
2622        sticker: String,
2623        emoji_list: Vec<String>,
2624    ) -> ErasedRequest<'a, SetStickerEmojiList, Self::Err> {
2625        Requester::set_sticker_emoji_list(self, sticker, emoji_list).erase()
2626    }
2627
2628    fn set_sticker_keywords(
2629        &self,
2630        sticker: String,
2631    ) -> ErasedRequest<'a, SetStickerKeywords, Self::Err> {
2632        Requester::set_sticker_keywords(self, sticker).erase()
2633    }
2634
2635    fn set_sticker_mask_position(
2636        &self,
2637        sticker: String,
2638    ) -> ErasedRequest<'a, SetStickerMaskPosition, Self::Err> {
2639        Requester::set_sticker_mask_position(self, sticker).erase()
2640    }
2641
2642    fn get_available_gifts(&self) -> ErasedRequest<'a, GetAvailableGifts, Self::Err> {
2643        Requester::get_available_gifts(self).erase()
2644    }
2645
2646    fn send_gift(
2647        &self,
2648        user_id: UserId,
2649        gift_id: GiftId,
2650    ) -> ErasedRequest<'a, SendGift, Self::Err> {
2651        Requester::send_gift(self, user_id, gift_id).erase()
2652    }
2653
2654    fn send_gift_chat(
2655        &self,
2656        chat_id: Recipient,
2657        gift_id: GiftId,
2658    ) -> ErasedRequest<'a, SendGiftChat, Self::Err> {
2659        Requester::send_gift_chat(self, chat_id, gift_id).erase()
2660    }
2661
2662    fn gift_premium_subscription(
2663        &self,
2664        user_id: UserId,
2665        month_count: u8,
2666        star_count: u32,
2667    ) -> ErasedRequest<'a, GiftPremiumSubscription, Self::Err> {
2668        Requester::gift_premium_subscription(self, user_id, month_count, star_count).erase()
2669    }
2670
2671    fn verify_user(&self, user_id: UserId) -> ErasedRequest<'a, VerifyUser, Self::Err> {
2672        Requester::verify_user(self, user_id).erase()
2673    }
2674
2675    fn verify_chat(&self, chat_id: Recipient) -> ErasedRequest<'a, VerifyChat, Self::Err> {
2676        Requester::verify_chat(self, chat_id).erase()
2677    }
2678
2679    fn remove_user_verification(
2680        &self,
2681        user_id: UserId,
2682    ) -> ErasedRequest<'a, RemoveUserVerification, Self::Err> {
2683        Requester::remove_user_verification(self, user_id).erase()
2684    }
2685
2686    fn remove_chat_verification(
2687        &self,
2688        chat_id: Recipient,
2689    ) -> ErasedRequest<'a, RemoveChatVerification, Self::Err> {
2690        Requester::remove_chat_verification(self, chat_id).erase()
2691    }
2692
2693    fn read_business_message(
2694        &self,
2695        business_connection_id: BusinessConnectionId,
2696        chat_id: ChatId,
2697        message_id: MessageId,
2698    ) -> ErasedRequest<'a, ReadBusinessMessage, Self::Err> {
2699        Requester::read_business_message(self, business_connection_id, chat_id, message_id).erase()
2700    }
2701
2702    fn delete_business_messages(
2703        &self,
2704        business_connection_id: BusinessConnectionId,
2705        message_ids: Vec<MessageId>,
2706    ) -> ErasedRequest<'a, DeleteBusinessMessages, Self::Err> {
2707        Requester::delete_business_messages(self, business_connection_id, message_ids).erase()
2708    }
2709
2710    fn set_business_account_name(
2711        &self,
2712        business_connection_id: BusinessConnectionId,
2713        first_name: String,
2714    ) -> ErasedRequest<'a, SetBusinessAccountName, Self::Err> {
2715        Requester::set_business_account_name(self, business_connection_id, first_name).erase()
2716    }
2717
2718    fn set_business_account_username(
2719        &self,
2720        business_connection_id: BusinessConnectionId,
2721    ) -> ErasedRequest<'a, SetBusinessAccountUsername, Self::Err> {
2722        Requester::set_business_account_username(self, business_connection_id).erase()
2723    }
2724
2725    fn set_business_account_bio(
2726        &self,
2727        business_connection_id: BusinessConnectionId,
2728    ) -> ErasedRequest<'a, SetBusinessAccountBio, Self::Err> {
2729        Requester::set_business_account_bio(self, business_connection_id).erase()
2730    }
2731
2732    fn set_business_account_profile_photo(
2733        &self,
2734        business_connection_id: BusinessConnectionId,
2735        photo: InputProfilePhoto,
2736    ) -> ErasedRequest<'a, SetBusinessAccountProfilePhoto, Self::Err> {
2737        Requester::set_business_account_profile_photo(self, business_connection_id, photo).erase()
2738    }
2739
2740    fn remove_business_account_profile_photo(
2741        &self,
2742        business_connection_id: BusinessConnectionId,
2743    ) -> ErasedRequest<'a, RemoveBusinessAccountProfilePhoto, Self::Err> {
2744        Requester::remove_business_account_profile_photo(self, business_connection_id).erase()
2745    }
2746
2747    fn set_business_account_gift_settings(
2748        &self,
2749        business_connection_id: BusinessConnectionId,
2750        show_gift_button: bool,
2751        accepted_gift_types: AcceptedGiftTypes,
2752    ) -> ErasedRequest<'a, SetBusinessAccountGiftSettings, Self::Err> {
2753        Requester::set_business_account_gift_settings(
2754            self,
2755            business_connection_id,
2756            show_gift_button,
2757            accepted_gift_types,
2758        )
2759        .erase()
2760    }
2761
2762    fn get_business_account_star_balance(
2763        &self,
2764        business_connection_id: BusinessConnectionId,
2765    ) -> ErasedRequest<'a, GetBusinessAccountStarBalance, Self::Err> {
2766        Requester::get_business_account_star_balance(self, business_connection_id).erase()
2767    }
2768
2769    fn transfer_business_account_stars(
2770        &self,
2771        business_connection_id: BusinessConnectionId,
2772        star_count: u32,
2773    ) -> ErasedRequest<'a, TransferBusinessAccountStars, Self::Err> {
2774        Requester::transfer_business_account_stars(self, business_connection_id, star_count).erase()
2775    }
2776
2777    fn get_business_account_gifts(
2778        &self,
2779        business_connection_id: BusinessConnectionId,
2780    ) -> ErasedRequest<'a, GetBusinessAccountGifts, Self::Err> {
2781        Requester::get_business_account_gifts(self, business_connection_id).erase()
2782    }
2783
2784    fn convert_gift_to_stars(
2785        &self,
2786        business_connection_id: BusinessConnectionId,
2787        owned_gift_id: OwnedGiftId,
2788    ) -> ErasedRequest<'a, ConvertGiftToStars, Self::Err> {
2789        Requester::convert_gift_to_stars(self, business_connection_id, owned_gift_id).erase()
2790    }
2791
2792    fn upgrade_gift(
2793        &self,
2794        business_connection_id: BusinessConnectionId,
2795        owned_gift_id: OwnedGiftId,
2796    ) -> ErasedRequest<'a, UpgradeGift, Self::Err> {
2797        Requester::upgrade_gift(self, business_connection_id, owned_gift_id).erase()
2798    }
2799
2800    fn transfer_gift(
2801        &self,
2802        business_connection_id: BusinessConnectionId,
2803        owned_gift_id: OwnedGiftId,
2804        new_owner_chat_id: ChatId,
2805    ) -> ErasedRequest<'a, TransferGift, Self::Err> {
2806        Requester::transfer_gift(self, business_connection_id, owned_gift_id, new_owner_chat_id)
2807            .erase()
2808    }
2809
2810    fn get_user_gifts(&self, user_id: UserId) -> ErasedRequest<'a, GetUserGifts, Self::Err> {
2811        Requester::get_user_gifts(self, user_id).erase()
2812    }
2813
2814    fn get_chat_gifts(&self, chat_id: Recipient) -> ErasedRequest<'a, GetChatGifts, Self::Err> {
2815        Requester::get_chat_gifts(self, chat_id).erase()
2816    }
2817
2818    fn repost_story(
2819        &self,
2820        business_connection_id: BusinessConnectionId,
2821        from_chat_id: ChatId,
2822        from_story_id: StoryId,
2823        active_period: Seconds,
2824    ) -> ErasedRequest<'a, RepostStory, Self::Err> {
2825        Requester::repost_story(
2826            self,
2827            business_connection_id,
2828            from_chat_id,
2829            from_story_id,
2830            active_period,
2831        )
2832        .erase()
2833    }
2834
2835    fn post_story(
2836        &self,
2837        business_connection_id: BusinessConnectionId,
2838        content: InputStoryContent,
2839        active_period: Seconds,
2840    ) -> ErasedRequest<'a, PostStory, Self::Err> {
2841        Requester::post_story(self, business_connection_id, content, active_period).erase()
2842    }
2843
2844    fn edit_story(
2845        &self,
2846        business_connection_id: BusinessConnectionId,
2847        story_id: StoryId,
2848        content: InputStoryContent,
2849    ) -> ErasedRequest<'a, EditStory, Self::Err> {
2850        Requester::edit_story(self, business_connection_id, story_id, content).erase()
2851    }
2852
2853    fn delete_story(
2854        &self,
2855        business_connection_id: BusinessConnectionId,
2856        story_id: StoryId,
2857    ) -> ErasedRequest<'a, DeleteStory, Self::Err> {
2858        Requester::delete_story(self, business_connection_id, story_id).erase()
2859    }
2860
2861    fn send_invoice(
2862        &self,
2863        chat_id: Recipient,
2864        title: String,
2865        description: String,
2866        payload: String,
2867        currency: String,
2868        prices: Vec<LabeledPrice>,
2869    ) -> ErasedRequest<'a, SendInvoice, Self::Err> {
2870        Requester::send_invoice(self, chat_id, title, description, payload, currency, prices)
2871            .erase()
2872    }
2873
2874    fn create_invoice_link(
2875        &self,
2876        title: String,
2877        description: String,
2878        payload: String,
2879        currency: String,
2880        prices: Vec<LabeledPrice>,
2881    ) -> ErasedRequest<'a, CreateInvoiceLink, Self::Err> {
2882        Requester::create_invoice_link(self, title, description, payload, currency, prices).erase()
2883    }
2884
2885    fn answer_shipping_query(
2886        &self,
2887        shipping_query_id: ShippingQueryId,
2888        ok: bool,
2889    ) -> ErasedRequest<'a, AnswerShippingQuery, Self::Err> {
2890        Requester::answer_shipping_query(self, shipping_query_id, ok).erase()
2891    }
2892
2893    fn answer_pre_checkout_query(
2894        &self,
2895        pre_checkout_query_id: PreCheckoutQueryId,
2896        ok: bool,
2897    ) -> ErasedRequest<'a, AnswerPreCheckoutQuery, Self::Err> {
2898        Requester::answer_pre_checkout_query(self, pre_checkout_query_id, ok).erase()
2899    }
2900
2901    fn get_my_star_balance(&self) -> ErasedRequest<'a, GetMyStarBalance, Self::Err> {
2902        Requester::get_my_star_balance(self).erase()
2903    }
2904
2905    fn get_star_transactions(&self) -> ErasedRequest<'a, GetStarTransactions, Self::Err> {
2906        Requester::get_star_transactions(self).erase()
2907    }
2908
2909    fn refund_star_payment(
2910        &self,
2911        user_id: UserId,
2912        telegram_payment_charge_id: TelegramTransactionId,
2913    ) -> ErasedRequest<'a, RefundStarPayment, Self::Err> {
2914        Requester::refund_star_payment(self, user_id, telegram_payment_charge_id).erase()
2915    }
2916
2917    fn edit_user_star_subscription(
2918        &self,
2919        user_id: UserId,
2920        telegram_payment_charge_id: TelegramTransactionId,
2921        is_canceled: bool,
2922    ) -> ErasedRequest<'a, EditUserStarSubscription, Self::Err> {
2923        Requester::edit_user_star_subscription(
2924            self,
2925            user_id,
2926            telegram_payment_charge_id,
2927            is_canceled,
2928        )
2929        .erase()
2930    }
2931
2932    fn set_passport_data_errors(
2933        &self,
2934        user_id: UserId,
2935        errors: Vec<PassportElementError>,
2936    ) -> ErasedRequest<'a, SetPassportDataErrors, Self::Err> {
2937        Requester::set_passport_data_errors(self, user_id, errors).erase()
2938    }
2939
2940    fn send_game(
2941        &self,
2942        chat_id: ChatId,
2943        game_short_name: String,
2944    ) -> ErasedRequest<'a, SendGame, Self::Err> {
2945        Requester::send_game(self, chat_id, game_short_name).erase()
2946    }
2947
2948    fn set_game_score(
2949        &self,
2950        user_id: UserId,
2951        score: u64,
2952        chat_id: u32,
2953        message_id: MessageId,
2954    ) -> ErasedRequest<'a, SetGameScore, Self::Err> {
2955        Requester::set_game_score(self, user_id, score, chat_id, message_id).erase()
2956    }
2957
2958    fn set_game_score_inline(
2959        &self,
2960        user_id: UserId,
2961        score: u64,
2962        inline_message_id: String,
2963    ) -> ErasedRequest<'a, SetGameScoreInline, Self::Err> {
2964        Requester::set_game_score_inline(self, user_id, score, inline_message_id).erase()
2965    }
2966
2967    fn get_game_high_scores(
2968        &self,
2969        user_id: UserId,
2970        target: TargetMessage,
2971    ) -> ErasedRequest<'a, GetGameHighScores, Self::Err> {
2972        Requester::get_game_high_scores(self, user_id, target).erase()
2973    }
2974}