Skip to main content

ronami_core/adaptors/
erased.rs

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