diff --git a/src/requests/all/add_sticker_to_set.rs b/src/requests/all/add_sticker_to_set.rs index 5049ce21..fad08872 100644 --- a/src/requests/all/add_sticker_to_set.rs +++ b/src/requests/all/add_sticker_to_set.rs @@ -36,7 +36,9 @@ pub struct AddStickerToSet<'a> { } #[async_trait::async_trait] -impl Request<True> for AddStickerToSet<'_> { +impl Request for AddStickerToSet<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/answer_callback_query.rs b/src/requests/all/answer_callback_query.rs index 3b5f35cb..6e11f4d8 100644 --- a/src/requests/all/answer_callback_query.rs +++ b/src/requests/all/answer_callback_query.rs @@ -41,7 +41,9 @@ pub struct AnswerCallbackQuery<'a> { } #[async_trait::async_trait] -impl Request<True> for AnswerCallbackQuery<'_> { +impl Request for AnswerCallbackQuery<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/answer_inline_query.rs b/src/requests/all/answer_inline_query.rs index d0422adf..311bc904 100644 --- a/src/requests/all/answer_inline_query.rs +++ b/src/requests/all/answer_inline_query.rs @@ -50,7 +50,9 @@ pub struct AnswerInlineQuery<'a> { } #[async_trait::async_trait] -impl Request<True> for AnswerInlineQuery<'_> { +impl Request for AnswerInlineQuery<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/answer_pre_checkout_query.rs b/src/requests/all/answer_pre_checkout_query.rs index 341cc519..f421e9ca 100644 --- a/src/requests/all/answer_pre_checkout_query.rs +++ b/src/requests/all/answer_pre_checkout_query.rs @@ -34,7 +34,9 @@ pub struct AnswerPreCheckoutQuery<'a> { } #[async_trait::async_trait] -impl Request<True> for AnswerPreCheckoutQuery<'_> { +impl Request for AnswerPreCheckoutQuery<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/answer_shipping_query.rs b/src/requests/all/answer_shipping_query.rs index 67052cea..61618a31 100644 --- a/src/requests/all/answer_shipping_query.rs +++ b/src/requests/all/answer_shipping_query.rs @@ -34,7 +34,9 @@ pub struct AnswerShippingQuery<'a> { } #[async_trait::async_trait] -impl Request<True> for AnswerShippingQuery<'_> { +impl Request for AnswerShippingQuery<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/create_new_sticker_set.rs b/src/requests/all/create_new_sticker_set.rs index 1f05bc51..aba8219f 100644 --- a/src/requests/all/create_new_sticker_set.rs +++ b/src/requests/all/create_new_sticker_set.rs @@ -42,7 +42,9 @@ pub struct CreateNewStickerSet<'a> { } #[async_trait::async_trait] -impl Request<True> for CreateNewStickerSet<'_> { +impl Request for CreateNewStickerSet<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/delete_chat_photo.rs b/src/requests/all/delete_chat_photo.rs index 65ea22a2..6eee11ce 100644 --- a/src/requests/all/delete_chat_photo.rs +++ b/src/requests/all/delete_chat_photo.rs @@ -22,7 +22,9 @@ pub struct DeleteChatPhoto<'a> { } #[async_trait::async_trait] -impl Request<True> for DeleteChatPhoto<'_> { +impl Request for DeleteChatPhoto<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/delete_chat_sticker_set.rs b/src/requests/all/delete_chat_sticker_set.rs index cfebe609..422faa32 100644 --- a/src/requests/all/delete_chat_sticker_set.rs +++ b/src/requests/all/delete_chat_sticker_set.rs @@ -24,7 +24,9 @@ pub struct DeleteChatStickerSet<'a> { } #[async_trait::async_trait] -impl Request<True> for DeleteChatStickerSet<'_> { +impl Request for DeleteChatStickerSet<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/delete_message.rs b/src/requests/all/delete_message.rs index 2d8bef47..490d6d0a 100644 --- a/src/requests/all/delete_message.rs +++ b/src/requests/all/delete_message.rs @@ -30,7 +30,9 @@ pub struct DeleteMessage<'a> { } #[async_trait::async_trait] -impl Request<True> for DeleteMessage<'_> { +impl Request for DeleteMessage<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/delete_sticker_from_set.rs b/src/requests/all/delete_sticker_from_set.rs index 4c9c0968..11a32ab1 100644 --- a/src/requests/all/delete_sticker_from_set.rs +++ b/src/requests/all/delete_sticker_from_set.rs @@ -20,7 +20,9 @@ pub struct DeleteStickerFromSet<'a> { } #[async_trait::async_trait] -impl Request<True> for DeleteStickerFromSet<'_> { +impl Request for DeleteStickerFromSet<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/delete_webhook.rs b/src/requests/all/delete_webhook.rs index 84e27dec..bb75cd88 100644 --- a/src/requests/all/delete_webhook.rs +++ b/src/requests/all/delete_webhook.rs @@ -17,7 +17,9 @@ pub struct DeleteWebhook<'a> { } #[async_trait::async_trait] -impl Request<True> for DeleteWebhook<'_> { +impl Request for DeleteWebhook<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/edit_message_caption.rs b/src/requests/all/edit_message_caption.rs index 229d2267..26345554 100644 --- a/src/requests/all/edit_message_caption.rs +++ b/src/requests/all/edit_message_caption.rs @@ -29,7 +29,9 @@ pub struct EditMessageCaption<'a> { } #[async_trait::async_trait] -impl Request<Message> for EditMessageCaption<'_> { +impl Request for EditMessageCaption<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/edit_message_live_location.rs b/src/requests/all/edit_message_live_location.rs index 7a72fd07..b5b9c8b9 100644 --- a/src/requests/all/edit_message_live_location.rs +++ b/src/requests/all/edit_message_live_location.rs @@ -29,7 +29,9 @@ pub struct EditMessageLiveLocation<'a> { } #[async_trait::async_trait] -impl Request<Message> for EditMessageLiveLocation<'_> { +impl Request for EditMessageLiveLocation<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/edit_message_media.rs b/src/requests/all/edit_message_media.rs index 487b024a..7941b1d9 100644 --- a/src/requests/all/edit_message_media.rs +++ b/src/requests/all/edit_message_media.rs @@ -30,7 +30,9 @@ pub struct EditMessageMedia<'a> { } #[async_trait::async_trait] -impl Request<Message> for EditMessageMedia<'_> { +impl Request for EditMessageMedia<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { let mut params = FormBuilder::new(); diff --git a/src/requests/all/edit_message_reply_markup.rs b/src/requests/all/edit_message_reply_markup.rs index 7878cdd1..a5721ca2 100644 --- a/src/requests/all/edit_message_reply_markup.rs +++ b/src/requests/all/edit_message_reply_markup.rs @@ -24,7 +24,9 @@ pub struct EditMessageReplyMarkup<'a> { } #[async_trait::async_trait] -impl Request<Message> for EditMessageReplyMarkup<'_> { +impl Request for EditMessageReplyMarkup<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/edit_message_text.rs b/src/requests/all/edit_message_text.rs index 61b80659..78857182 100644 --- a/src/requests/all/edit_message_text.rs +++ b/src/requests/all/edit_message_text.rs @@ -31,7 +31,9 @@ pub struct EditMessageText<'a> { } #[async_trait::async_trait] -impl Request<Message> for EditMessageText<'_> { +impl Request for EditMessageText<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/export_chat_invite_link.rs b/src/requests/all/export_chat_invite_link.rs index 1242db02..5550953b 100644 --- a/src/requests/all/export_chat_invite_link.rs +++ b/src/requests/all/export_chat_invite_link.rs @@ -29,7 +29,9 @@ pub struct ExportChatInviteLink<'a> { } #[async_trait::async_trait] -impl Request<String> for ExportChatInviteLink<'_> { +impl Request for ExportChatInviteLink<'_> { + type Output = String; + async fn send(&self) -> ResponseResult<String> { network::request_json( self.bot.client(), diff --git a/src/requests/all/forward_message.rs b/src/requests/all/forward_message.rs index 0d942b82..646ef8a7 100644 --- a/src/requests/all/forward_message.rs +++ b/src/requests/all/forward_message.rs @@ -29,7 +29,9 @@ pub struct ForwardMessage<'a> { } #[async_trait::async_trait] -impl Request<Message> for ForwardMessage<'_> { +impl Request for ForwardMessage<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_chat.rs b/src/requests/all/get_chat.rs index 105664be..8313dde6 100644 --- a/src/requests/all/get_chat.rs +++ b/src/requests/all/get_chat.rs @@ -22,7 +22,9 @@ pub struct GetChat<'a> { } #[async_trait::async_trait] -impl Request<Chat> for GetChat<'_> { +impl Request for GetChat<'_> { + type Output = Chat; + async fn send(&self) -> ResponseResult<Chat> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_chat_administrators.rs b/src/requests/all/get_chat_administrators.rs index 5135c75a..32fd9e61 100644 --- a/src/requests/all/get_chat_administrators.rs +++ b/src/requests/all/get_chat_administrators.rs @@ -24,7 +24,9 @@ pub struct GetChatAdministrators<'a> { } #[async_trait::async_trait] -impl Request<Vec<ChatMember>> for GetChatAdministrators<'_> { +impl Request for GetChatAdministrators<'_> { + type Output = Vec<ChatMember>; + async fn send(&self) -> ResponseResult<Vec<ChatMember>> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_chat_member.rs b/src/requests/all/get_chat_member.rs index 58f3bc0c..37a32e70 100644 --- a/src/requests/all/get_chat_member.rs +++ b/src/requests/all/get_chat_member.rs @@ -23,7 +23,9 @@ pub struct GetChatMember<'a> { } #[async_trait::async_trait] -impl Request<ChatMember> for GetChatMember<'_> { +impl Request for GetChatMember<'_> { + type Output = ChatMember; + async fn send(&self) -> ResponseResult<ChatMember> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_chat_members_count.rs b/src/requests/all/get_chat_members_count.rs index c3660aae..a5b6fa58 100644 --- a/src/requests/all/get_chat_members_count.rs +++ b/src/requests/all/get_chat_members_count.rs @@ -21,7 +21,9 @@ pub struct GetChatMembersCount<'a> { } #[async_trait::async_trait] -impl Request<i32> for GetChatMembersCount<'_> { +impl Request for GetChatMembersCount<'_> { + type Output = i32; + async fn send(&self) -> ResponseResult<i32> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_file.rs b/src/requests/all/get_file.rs index d06cb055..f6a66d2a 100644 --- a/src/requests/all/get_file.rs +++ b/src/requests/all/get_file.rs @@ -37,7 +37,9 @@ pub struct GetFile<'a> { } #[async_trait::async_trait] -impl Request<File> for GetFile<'_> { +impl Request for GetFile<'_> { + type Output = File; + async fn send(&self) -> ResponseResult<File> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_game_high_scores.rs b/src/requests/all/get_game_high_scores.rs index 02e727bb..eb5737b9 100644 --- a/src/requests/all/get_game_high_scores.rs +++ b/src/requests/all/get_game_high_scores.rs @@ -27,7 +27,9 @@ pub struct GetGameHighScores<'a> { } #[async_trait::async_trait] -impl Request<Vec<GameHighScore>> for GetGameHighScores<'_> { +impl Request for GetGameHighScores<'_> { + type Output = Vec<GameHighScore>; + async fn send(&self) -> ResponseResult<Vec<GameHighScore>> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_me.rs b/src/requests/all/get_me.rs index 07d882e7..3fbe7791 100644 --- a/src/requests/all/get_me.rs +++ b/src/requests/all/get_me.rs @@ -17,7 +17,9 @@ pub struct GetMe<'a> { } #[async_trait::async_trait] -impl Request<User> for GetMe<'_> { +impl Request for GetMe<'_> { + type Output = User; + #[allow(clippy::trivially_copy_pass_by_ref)] async fn send(&self) -> ResponseResult<User> { network::request_json( diff --git a/src/requests/all/get_sticker_set.rs b/src/requests/all/get_sticker_set.rs index 86a9fb31..5914123c 100644 --- a/src/requests/all/get_sticker_set.rs +++ b/src/requests/all/get_sticker_set.rs @@ -20,7 +20,9 @@ pub struct GetStickerSet<'a> { } #[async_trait::async_trait] -impl Request<StickerSet> for GetStickerSet<'_> { +impl Request for GetStickerSet<'_> { + type Output = StickerSet; + async fn send(&self) -> ResponseResult<StickerSet> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_updates.rs b/src/requests/all/get_updates.rs index 22d3155b..795aa58b 100644 --- a/src/requests/all/get_updates.rs +++ b/src/requests/all/get_updates.rs @@ -66,7 +66,9 @@ pub struct GetUpdates<'a> { } #[async_trait::async_trait] -impl Request<Vec<Update>> for GetUpdates<'_> { +impl Request for GetUpdates<'_> { + type Output = Vec<Update>; + async fn send(&self) -> ResponseResult<Vec<Update>> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_user_profile_photos.rs b/src/requests/all/get_user_profile_photos.rs index 622d2453..2c43731d 100644 --- a/src/requests/all/get_user_profile_photos.rs +++ b/src/requests/all/get_user_profile_photos.rs @@ -26,7 +26,9 @@ pub struct GetUserProfilePhotos<'a> { } #[async_trait::async_trait] -impl Request<UserProfilePhotos> for GetUserProfilePhotos<'_> { +impl Request for GetUserProfilePhotos<'_> { + type Output = UserProfilePhotos; + async fn send(&self) -> ResponseResult<UserProfilePhotos> { network::request_json( self.bot.client(), diff --git a/src/requests/all/get_webhook_info.rs b/src/requests/all/get_webhook_info.rs index 55b9015e..ff65ee25 100644 --- a/src/requests/all/get_webhook_info.rs +++ b/src/requests/all/get_webhook_info.rs @@ -17,7 +17,9 @@ pub struct GetWebhookInfo<'a> { } #[async_trait::async_trait] -impl Request<WebhookInfo> for GetWebhookInfo<'_> { +impl Request for GetWebhookInfo<'_> { + type Output = WebhookInfo; + async fn send(&self) -> ResponseResult<WebhookInfo> { network::request_json( self.bot.client(), diff --git a/src/requests/all/kick_chat_member.rs b/src/requests/all/kick_chat_member.rs index 5efdad2c..50ec4bbb 100644 --- a/src/requests/all/kick_chat_member.rs +++ b/src/requests/all/kick_chat_member.rs @@ -30,7 +30,9 @@ pub struct KickChatMember<'a> { } #[async_trait::async_trait] -impl Request<True> for KickChatMember<'_> { +impl Request for KickChatMember<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/leave_chat.rs b/src/requests/all/leave_chat.rs index 686009c4..a6e792a4 100644 --- a/src/requests/all/leave_chat.rs +++ b/src/requests/all/leave_chat.rs @@ -21,7 +21,9 @@ pub struct LeaveChat<'a> { } #[async_trait::async_trait] -impl Request<True> for LeaveChat<'_> { +impl Request for LeaveChat<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/pin_chat_message.rs b/src/requests/all/pin_chat_message.rs index dad8e193..8abef686 100644 --- a/src/requests/all/pin_chat_message.rs +++ b/src/requests/all/pin_chat_message.rs @@ -29,7 +29,9 @@ pub struct PinChatMessage<'a> { } #[async_trait::async_trait] -impl Request<True> for PinChatMessage<'_> { +impl Request for PinChatMessage<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/promote_chat_member.rs b/src/requests/all/promote_chat_member.rs index 5068a46f..88f8ee72 100644 --- a/src/requests/all/promote_chat_member.rs +++ b/src/requests/all/promote_chat_member.rs @@ -46,7 +46,9 @@ pub struct PromoteChatMember<'a> { } #[async_trait::async_trait] -impl Request<True> for PromoteChatMember<'_> { +impl Request for PromoteChatMember<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/restrict_chat_member.rs b/src/requests/all/restrict_chat_member.rs index fd9d6c1a..3ec1815d 100644 --- a/src/requests/all/restrict_chat_member.rs +++ b/src/requests/all/restrict_chat_member.rs @@ -31,7 +31,9 @@ pub struct RestrictChatMember<'a> { } #[async_trait::async_trait] -impl Request<True> for RestrictChatMember<'_> { +impl Request for RestrictChatMember<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_animation.rs b/src/requests/all/send_animation.rs index ffde26fc..a416b02c 100644 --- a/src/requests/all/send_animation.rs +++ b/src/requests/all/send_animation.rs @@ -62,7 +62,9 @@ pub struct SendAnimation<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendAnimation<'_> { +impl Request for SendAnimation<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_audio.rs b/src/requests/all/send_audio.rs index bee572c0..dc87956d 100644 --- a/src/requests/all/send_audio.rs +++ b/src/requests/all/send_audio.rs @@ -58,7 +58,9 @@ pub struct SendAudio<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendAudio<'_> { +impl Request for SendAudio<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_chat_action.rs b/src/requests/all/send_chat_action.rs index 405a48c9..641bfc93 100644 --- a/src/requests/all/send_chat_action.rs +++ b/src/requests/all/send_chat_action.rs @@ -68,7 +68,9 @@ pub enum SendChatActionKind { } #[async_trait::async_trait] -impl Request<True> for SendChatAction<'_> { +impl Request for SendChatAction<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_contact.rs b/src/requests/all/send_contact.rs index 4489e0ff..56f144cf 100644 --- a/src/requests/all/send_contact.rs +++ b/src/requests/all/send_contact.rs @@ -38,7 +38,9 @@ pub struct SendContact<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendContact<'_> { +impl Request for SendContact<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_document.rs b/src/requests/all/send_document.rs index 65e870f0..1817167f 100644 --- a/src/requests/all/send_document.rs +++ b/src/requests/all/send_document.rs @@ -51,7 +51,9 @@ pub struct SendDocument<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendDocument<'_> { +impl Request for SendDocument<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_game.rs b/src/requests/all/send_game.rs index 2d906ce2..48d5cff9 100644 --- a/src/requests/all/send_game.rs +++ b/src/requests/all/send_game.rs @@ -31,7 +31,9 @@ pub struct SendGame<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendGame<'_> { +impl Request for SendGame<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_invoice.rs b/src/requests/all/send_invoice.rs index 66aa1140..bedfe27d 100644 --- a/src/requests/all/send_invoice.rs +++ b/src/requests/all/send_invoice.rs @@ -75,7 +75,9 @@ pub struct SendInvoice<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendInvoice<'_> { +impl Request for SendInvoice<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_location.rs b/src/requests/all/send_location.rs index 89bd0196..1a0a36e4 100644 --- a/src/requests/all/send_location.rs +++ b/src/requests/all/send_location.rs @@ -37,7 +37,9 @@ pub struct SendLocation<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendLocation<'_> { +impl Request for SendLocation<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_media_group.rs b/src/requests/all/send_media_group.rs index 298bd89b..1b6fd151 100644 --- a/src/requests/all/send_media_group.rs +++ b/src/requests/all/send_media_group.rs @@ -29,7 +29,9 @@ pub struct SendMediaGroup<'a> { } #[async_trait::async_trait] -impl Request<Vec<Message>> for SendMediaGroup<'_> { +impl Request for SendMediaGroup<'_> { + type Output = Vec<Message>; + async fn send(&self) -> ResponseResult<Vec<Message>> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_message.rs b/src/requests/all/send_message.rs index 43906859..934bc37f 100644 --- a/src/requests/all/send_message.rs +++ b/src/requests/all/send_message.rs @@ -45,7 +45,9 @@ pub struct SendMessage<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendMessage<'_> { +impl Request for SendMessage<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_photo.rs b/src/requests/all/send_photo.rs index 9ddfd157..1ce44e87 100644 --- a/src/requests/all/send_photo.rs +++ b/src/requests/all/send_photo.rs @@ -40,7 +40,9 @@ pub struct SendPhoto<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendPhoto<'_> { +impl Request for SendPhoto<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_poll.rs b/src/requests/all/send_poll.rs index fe4463e8..601e0dec 100644 --- a/src/requests/all/send_poll.rs +++ b/src/requests/all/send_poll.rs @@ -35,7 +35,9 @@ pub struct SendPoll<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendPoll<'_> { +impl Request for SendPoll<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_sticker.rs b/src/requests/all/send_sticker.rs index 74b0f4f5..bbf41ffb 100644 --- a/src/requests/all/send_sticker.rs +++ b/src/requests/all/send_sticker.rs @@ -35,7 +35,9 @@ pub struct SendSticker<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendSticker<'_> { +impl Request for SendSticker<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_venue.rs b/src/requests/all/send_venue.rs index 128ff1e0..9c114745 100644 --- a/src/requests/all/send_venue.rs +++ b/src/requests/all/send_venue.rs @@ -44,7 +44,9 @@ pub struct SendVenue<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendVenue<'_> { +impl Request for SendVenue<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/send_video.rs b/src/requests/all/send_video.rs index e564e78f..1e549fb0 100644 --- a/src/requests/all/send_video.rs +++ b/src/requests/all/send_video.rs @@ -60,7 +60,9 @@ pub struct SendVideo<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendVideo<'_> { +impl Request for SendVideo<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_video_note.rs b/src/requests/all/send_video_note.rs index 62716d37..9f1b3d94 100644 --- a/src/requests/all/send_video_note.rs +++ b/src/requests/all/send_video_note.rs @@ -49,7 +49,9 @@ pub struct SendVideoNote<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendVideoNote<'_> { +impl Request for SendVideoNote<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/send_voice.rs b/src/requests/all/send_voice.rs index 5ea744a8..7bfd0163 100644 --- a/src/requests/all/send_voice.rs +++ b/src/requests/all/send_voice.rs @@ -46,7 +46,9 @@ pub struct SendVoice<'a> { } #[async_trait::async_trait] -impl Request<Message> for SendVoice<'_> { +impl Request for SendVoice<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_multipart( self.bot.client(), diff --git a/src/requests/all/set_chat_administrator_custom_title.rs b/src/requests/all/set_chat_administrator_custom_title.rs index 90b32c81..7ea8aebf 100644 --- a/src/requests/all/set_chat_administrator_custom_title.rs +++ b/src/requests/all/set_chat_administrator_custom_title.rs @@ -28,7 +28,9 @@ pub struct SetChatAdministratorCustomTitle<'a> { } #[async_trait::async_trait] -impl Request<True> for SetChatAdministratorCustomTitle<'_> { +impl Request for SetChatAdministratorCustomTitle<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_chat_description.rs b/src/requests/all/set_chat_description.rs index f95c0a5c..23be7923 100644 --- a/src/requests/all/set_chat_description.rs +++ b/src/requests/all/set_chat_description.rs @@ -24,7 +24,9 @@ pub struct SetChatDescription<'a> { } #[async_trait::async_trait] -impl Request<True> for SetChatDescription<'_> { +impl Request for SetChatDescription<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_chat_permissions.rs b/src/requests/all/set_chat_permissions.rs index 95fc8c53..213c0cab 100644 --- a/src/requests/all/set_chat_permissions.rs +++ b/src/requests/all/set_chat_permissions.rs @@ -24,7 +24,9 @@ pub struct SetChatPermissions<'a> { } #[async_trait::async_trait] -impl Request<True> for SetChatPermissions<'_> { +impl Request for SetChatPermissions<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_chat_photo.rs b/src/requests/all/set_chat_photo.rs index ccc749d1..0e62e898 100644 --- a/src/requests/all/set_chat_photo.rs +++ b/src/requests/all/set_chat_photo.rs @@ -25,7 +25,9 @@ pub struct SetChatPhoto<'a> { } #[async_trait::async_trait] -impl Request<True> for SetChatPhoto<'_> { +impl Request for SetChatPhoto<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_chat_sticker_set.rs b/src/requests/all/set_chat_sticker_set.rs index ad6c1408..a698a809 100644 --- a/src/requests/all/set_chat_sticker_set.rs +++ b/src/requests/all/set_chat_sticker_set.rs @@ -26,7 +26,9 @@ pub struct SetChatStickerSet<'a> { } #[async_trait::async_trait] -impl Request<True> for SetChatStickerSet<'_> { +impl Request for SetChatStickerSet<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_chat_title.rs b/src/requests/all/set_chat_title.rs index d2cc866d..1aaa630e 100644 --- a/src/requests/all/set_chat_title.rs +++ b/src/requests/all/set_chat_title.rs @@ -24,7 +24,9 @@ pub struct SetChatTitle<'a> { } #[async_trait::async_trait] -impl Request<True> for SetChatTitle<'_> { +impl Request for SetChatTitle<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_game_score.rs b/src/requests/all/set_game_score.rs index 12e736d3..b98230ee 100644 --- a/src/requests/all/set_game_score.rs +++ b/src/requests/all/set_game_score.rs @@ -33,7 +33,9 @@ pub struct SetGameScore<'a> { } #[async_trait::async_trait] -impl Request<Message> for SetGameScore<'_> { +impl Request for SetGameScore<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_sticker_position_in_set.rs b/src/requests/all/set_sticker_position_in_set.rs index 6db6a2d7..23892145 100644 --- a/src/requests/all/set_sticker_position_in_set.rs +++ b/src/requests/all/set_sticker_position_in_set.rs @@ -22,7 +22,9 @@ pub struct SetStickerPositionInSet<'a> { } #[async_trait::async_trait] -impl Request<True> for SetStickerPositionInSet<'_> { +impl Request for SetStickerPositionInSet<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/set_webhook.rs b/src/requests/all/set_webhook.rs index 998384b7..b2cf1589 100644 --- a/src/requests/all/set_webhook.rs +++ b/src/requests/all/set_webhook.rs @@ -49,7 +49,9 @@ pub struct SetWebhook<'a> { } #[async_trait::async_trait] -impl Request<True> for SetWebhook<'_> { +impl Request for SetWebhook<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/stop_message_live_location.rs b/src/requests/all/stop_message_live_location.rs index ece22938..154da4f0 100644 --- a/src/requests/all/stop_message_live_location.rs +++ b/src/requests/all/stop_message_live_location.rs @@ -24,7 +24,9 @@ pub struct StopMessageLiveLocation<'a> { } #[async_trait::async_trait] -impl Request<Message> for StopMessageLiveLocation<'_> { +impl Request for StopMessageLiveLocation<'_> { + type Output = Message; + async fn send(&self) -> ResponseResult<Message> { network::request_json( self.bot.client(), diff --git a/src/requests/all/stop_poll.rs b/src/requests/all/stop_poll.rs index 1f33c348..b99de386 100644 --- a/src/requests/all/stop_poll.rs +++ b/src/requests/all/stop_poll.rs @@ -25,7 +25,9 @@ pub struct StopPoll<'a> { } #[async_trait::async_trait] -impl Request<Poll> for StopPoll<'_> { +impl Request for StopPoll<'_> { + type Output = Poll; + async fn send(&self) -> ResponseResult<Poll> { network::request_json( self.bot.client(), diff --git a/src/requests/all/unban_chat_member.rs b/src/requests/all/unban_chat_member.rs index a6cae179..e145911d 100644 --- a/src/requests/all/unban_chat_member.rs +++ b/src/requests/all/unban_chat_member.rs @@ -25,7 +25,9 @@ pub struct UnbanChatMember<'a> { } #[async_trait::async_trait] -impl Request<True> for UnbanChatMember<'_> { +impl Request for UnbanChatMember<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/unpin_chat_message.rs b/src/requests/all/unpin_chat_message.rs index 87e8874d..4b166240 100644 --- a/src/requests/all/unpin_chat_message.rs +++ b/src/requests/all/unpin_chat_message.rs @@ -23,7 +23,9 @@ pub struct UnpinChatMessage<'a> { } #[async_trait::async_trait] -impl Request<True> for UnpinChatMessage<'_> { +impl Request for UnpinChatMessage<'_> { + type Output = True; + async fn send(&self) -> ResponseResult<True> { network::request_json( self.bot.client(), diff --git a/src/requests/all/upload_sticker_file.rs b/src/requests/all/upload_sticker_file.rs index 6b9cf7dc..5b1b496b 100644 --- a/src/requests/all/upload_sticker_file.rs +++ b/src/requests/all/upload_sticker_file.rs @@ -24,7 +24,9 @@ pub struct UploadStickerFile<'a> { png_sticker: InputFile, } #[async_trait::async_trait] -impl Request<File> for UploadStickerFile<'_> { +impl Request for UploadStickerFile<'_> { + type Output = File; + async fn send(&self) -> ResponseResult<File> { network::request_json( self.bot.client(), diff --git a/src/requests/mod.rs b/src/requests/mod.rs index e5dc6857..7f121d29 100644 --- a/src/requests/mod.rs +++ b/src/requests/mod.rs @@ -11,7 +11,10 @@ pub type ResponseResult<T> = Result<T, crate::RequestError>; /// Designates an API request. #[async_trait::async_trait] -pub trait Request<T> { +pub trait Request { + /// A data structure returned if success. + type Output; + /// Asynchronously sends this request to Telegram and returns the result. - async fn send(&self) -> ResponseResult<T>; + async fn send(&self) -> ResponseResult<Self::Output>; }