diff --git a/src/core/types/answer_pre_checkout_query.rs b/src/core/types/answer_pre_checkout_query.rs index 708aea12..b38cffe7 100644 --- a/src/core/types/answer_pre_checkout_query.rs +++ b/src/core/types/answer_pre_checkout_query.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct AnswerPreCheckoutQuery { pub pre_checkout_query_id: String, diff --git a/src/core/types/answer_shipping_query.rs b/src/core/types/answer_shipping_query.rs index bb7fa311..6b14a015 100644 --- a/src/core/types/answer_shipping_query.rs +++ b/src/core/types/answer_shipping_query.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::ShippingOption; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/audio.rs b/src/core/types/audio.rs index eb25c1be..1ccf1084 100644 --- a/src/core/types/audio.rs +++ b/src/core/types/audio.rs @@ -1,7 +1,7 @@ use crate::core::types::PhotoSize; -#[derive(Debug, Serialize, Deserialize, Hash, PartialEq, Eq)] +#[derive(Debug, Deserialize, Eq, Hash, PartialEq, Serialize)] pub struct Audio { pub file_id: String, pub duration: u32, diff --git a/src/core/types/callback_query.rs b/src/core/types/callback_query.rs index 3fb17e76..c08e0e2b 100644 --- a/src/core/types/callback_query.rs +++ b/src/core/types/callback_query.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - /// This object represents an incoming callback query from a callback button in an inline keyboard. #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct CallbackQuery { diff --git a/src/core/types/chat.rs b/src/core/types/chat.rs index 92b491f9..535d7769 100644 --- a/src/core/types/chat.rs +++ b/src/core/types/chat.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::{ChatPermissions, ChatPhoto, Message}; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/chat_permissions.rs b/src/core/types/chat_permissions.rs index de09b983..5e59cfc4 100644 --- a/src/core/types/chat_permissions.rs +++ b/src/core/types/chat_permissions.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct ChatPermissions { pub can_send_messages: Option, diff --git a/src/core/types/chat_photo.rs b/src/core/types/chat_photo.rs index 070ddfa2..463284c7 100644 --- a/src/core/types/chat_photo.rs +++ b/src/core/types/chat_photo.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct ChatPhoto { pub small_file_id: String, diff --git a/src/core/types/chosen_inline_result.rs b/src/core/types/chosen_inline_result.rs index 489acfaa..2adc3a45 100644 --- a/src/core/types/chosen_inline_result.rs +++ b/src/core/types/chosen_inline_result.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::user::User; #[derive(Debug, Deserealize)] diff --git a/src/core/types/document.rs b/src/core/types/document.rs index dafc4d17..fe1e4c2c 100644 --- a/src/core/types/document.rs +++ b/src/core/types/document.rs @@ -1,6 +1,7 @@ use crate::core::types::{PhotoSize, UnsignedInteger}; -#[derive(Debug, Deserialize, Hash, PartialEq, Eq)] + +#[derive(Debug, Deserialize, Eq, Hash, PartialEq)] pub struct Document { pub file_id: String, pub thumb: Option, diff --git a/src/core/types/force_reply.rs b/src/core/types/force_reply.rs index 6689065a..dc663f2b 100644 --- a/src/core/types/force_reply.rs +++ b/src/core/types/force_reply.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - /// Upon receiving a message with this object, Telegram clients will /// display a reply interface to the user (act as if the user has /// selected the bot‘s message and tapped ’Reply'). This can be diff --git a/src/core/types/inline_keyboard_button.rs b/src/core/types/inline_keyboard_button.rs index 6792df0f..f0746c50 100644 --- a/src/core/types/inline_keyboard_button.rs +++ b/src/core/types/inline_keyboard_button.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - /// This object represents one button of an inline keyboard. #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct InlineKeyboardButton { diff --git a/src/core/types/inline_keyboard_markup.rs b/src/core/types/inline_keyboard_markup.rs index 18aafc49..ae513a14 100644 --- a/src/core/types/inline_keyboard_markup.rs +++ b/src/core/types/inline_keyboard_markup.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - /// This object represents an inline keyboard that appears right next to the message it belongs to. #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct InlineKeyboardMarkup { diff --git a/src/core/types/input_file.rs b/src/core/types/input_file.rs index 0c3110f1..6a30686e 100644 --- a/src/core/types/input_file.rs +++ b/src/core/types/input_file.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Hash, PartialEq, Eq)] pub enum InputFile { File(std::path::PathBuf), diff --git a/src/core/types/input_media.rs b/src/core/types/input_media.rs index e9cdc5fd..4fd34baf 100644 --- a/src/core/types/input_media.rs +++ b/src/core/types/input_media.rs @@ -1,4 +1,3 @@ -use serde::Deserialize; use crate::core::types::{InputFile, ParseMode}; // TODO: should variants use new-type? diff --git a/src/core/types/invoice.rs b/src/core/types/invoice.rs index 385465f1..26b4b07b 100644 --- a/src/core/types/invoice.rs +++ b/src/core/types/invoice.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct Invoice { pub title: String, diff --git a/src/core/types/keyboard_button.rs b/src/core/types/keyboard_button.rs index 9021bf72..ee4899d9 100644 --- a/src/core/types/keyboard_button.rs +++ b/src/core/types/keyboard_button.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - /// This object represents one button of the reply keyboard. #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct KeyboardButton { diff --git a/src/core/types/label_price.rs b/src/core/types/label_price.rs index f26a98bb..14b126fc 100644 --- a/src/core/types/label_price.rs +++ b/src/core/types/label_price.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct LabeledPrice { pub label: String, diff --git a/src/core/types/login_url.rs b/src/core/types/login_url.rs index d9b65771..5dbf2ec9 100644 --- a/src/core/types/login_url.rs +++ b/src/core/types/login_url.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct LoginUrl { url: String, diff --git a/src/core/types/mask_position.rs b/src/core/types/mask_position.rs index d186cb18..435ff67a 100644 --- a/src/core/types/mask_position.rs +++ b/src/core/types/mask_position.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct MaskPosition { pub point: String, diff --git a/src/core/types/message.rs b/src/core/types/message.rs index f53bb5a6..3ad9876f 100644 --- a/src/core/types/message.rs +++ b/src/core/types/message.rs @@ -1,5 +1,3 @@ -// use serde::Deserialize; - use crate::core::types::{ Animation, Audio, Chat, Contact, Document, Game, InlineKeyboardMarkup, Invoice, Location, MessageEntity, PassportData, PhotoSize, Poll, Sticker, SuccessfulPayment, User, Venue, Video, diff --git a/src/core/types/message_entity.rs b/src/core/types/message_entity.rs index 9235bd2f..1ba4cfb9 100644 --- a/src/core/types/message_entity.rs +++ b/src/core/types/message_entity.rs @@ -1,6 +1,7 @@ use crate::core::types::User; -#[derive(Deserialize, Debug, PartialEq, Hash, Eq)] + +#[derive(Debug, Deserialize, Eq, Hash, PartialEq)] pub struct MessageEntity { #[serde(flatten)] pub kind: MessageEntityKind, @@ -8,6 +9,7 @@ pub struct MessageEntity { pub length: usize, } + #[derive(Deserialize, Debug, PartialEq, Hash, Eq)] #[serde(rename_all = "snake_case")] #[serde(tag = "type")] diff --git a/src/core/types/mod.rs b/src/core/types/mod.rs index 6af2d1dc..a7b2c954 100644 --- a/src/core/types/mod.rs +++ b/src/core/types/mod.rs @@ -19,6 +19,7 @@ pub use self::{ message::Message, message_entity::MessageEntity, order_info::OrderInfo, + photo_size::PhotoSize, pre_checkout_query::PreCheckoutQuery, send_invoice::SendInvoice, shipping_address::ShippingAddress, @@ -46,6 +47,7 @@ mod message; mod message_entity; mod not_implemented_types; mod order_info; +mod photo_size; mod pre_checkout_query; mod send_invoice; mod shipping_address; diff --git a/src/core/types/not_implemented_types.rs b/src/core/types/not_implemented_types.rs index a28e3997..4c45b84f 100644 --- a/src/core/types/not_implemented_types.rs +++ b/src/core/types/not_implemented_types.rs @@ -1,6 +1,3 @@ -#[derive(Debug, Deserialize, Serialize, PartialEq, Hash, Eq)] -pub struct PhotoSize; - #[derive(Debug, Deserialize, Serialize, PartialEq, Hash, Eq)] pub struct Location; diff --git a/src/core/types/order_info.rs b/src/core/types/order_info.rs index e60af685..24c1d4be 100644 --- a/src/core/types/order_info.rs +++ b/src/core/types/order_info.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::ShippingAddress; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/photo_size.rs b/src/core/types/photo_size.rs new file mode 100644 index 00000000..da00b17f --- /dev/null +++ b/src/core/types/photo_size.rs @@ -0,0 +1,10 @@ +use crate::core::types::{Integer, UnsignedInteger}; + + +#[derive(Debug, Deserialize, Eq, Hash, PartialEq, Serialize)] +pub struct PhotoSize { + pub file_id: String, + pub width: Integer, + pub heigth: Integer, + pub file_size: Option +} diff --git a/src/core/types/pre_checkout_query.rs b/src/core/types/pre_checkout_query.rs index 85fb1252..23a7de1b 100644 --- a/src/core/types/pre_checkout_query.rs +++ b/src/core/types/pre_checkout_query.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::{OrderInfo, User}; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/reply_keyboard_markup.rs b/src/core/types/reply_keyboard_markup.rs index 8587b805..aee5583f 100644 --- a/src/core/types/reply_keyboard_markup.rs +++ b/src/core/types/reply_keyboard_markup.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - /// This object represents a custom keyboard with reply options. #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct ReplyKeyboardMarkup { diff --git a/src/core/types/reply_keyboard_remove.rs b/src/core/types/reply_keyboard_remove.rs index 6a445502..d5836042 100644 --- a/src/core/types/reply_keyboard_remove.rs +++ b/src/core/types/reply_keyboard_remove.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - /// Upon receiving a message with this object, Telegram clients will remove /// the current custom keyboard and display the default letter-keyboard. /// By default, custom keyboards are displayed until a new keyboard is sent diff --git a/src/core/types/response_paramter.rs b/src/core/types/response_paramter.rs index 66a8d10d..dd07eb36 100644 --- a/src/core/types/response_paramter.rs +++ b/src/core/types/response_paramter.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct ResponseParameters { migrate_to_chat_id: Option, diff --git a/src/core/types/shipping_address.rs b/src/core/types/shipping_address.rs index 3f669ef8..bef6c29d 100644 --- a/src/core/types/shipping_address.rs +++ b/src/core/types/shipping_address.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct ShippingAddress { pub country_code: String, diff --git a/src/core/types/shipping_option.rs b/src/core/types/shipping_option.rs index 7a9c5c21..612580b2 100644 --- a/src/core/types/shipping_option.rs +++ b/src/core/types/shipping_option.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::LabeledPrice; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/shipping_query.rs b/src/core/types/shipping_query.rs index 96eec275..b5a48e99 100644 --- a/src/core/types/shipping_query.rs +++ b/src/core/types/shipping_query.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::{ShippingAddress, User}; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/sticker.rs b/src/core/types/sticker.rs index cea09669..021cb828 100644 --- a/src/core/types/sticker.rs +++ b/src/core/types/sticker.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::{MaskPosition, PhotoSize}; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/sticker_set.rs b/src/core/types/sticker_set.rs index e107cf73..d2ea699c 100644 --- a/src/core/types/sticker_set.rs +++ b/src/core/types/sticker_set.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::Sticker; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/successful_payment.rs b/src/core/types/successful_payment.rs index 07e4de48..f9331fd3 100644 --- a/src/core/types/successful_payment.rs +++ b/src/core/types/successful_payment.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - use crate::core::types::OrderInfo; #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] diff --git a/src/core/types/user.rs b/src/core/types/user.rs index 0a6f6c43..2e8ab8c3 100644 --- a/src/core/types/user.rs +++ b/src/core/types/user.rs @@ -1,5 +1,3 @@ -use serde::Deserialize; - #[derive(Debug, Deserialize, Hash, PartialEq, Eq)] pub struct User { pub id: i64,