Remove core module

This commit is contained in:
Waffle 2019-09-21 00:02:37 +03:00
parent bd9ba91de2
commit af9cf93c76
104 changed files with 153 additions and 179 deletions

View file

@ -1,8 +1,8 @@
use reqwest::r#async::Client; use reqwest::r#async::Client;
use crate::core::network::{download_file, download_file_stream}; use crate::network::{download_file, download_file_stream};
use crate::core::requests::get_file::GetFile; use crate::requests::get_file::GetFile;
use crate::core::{ use crate::{
requests::{ requests::{
edit_message_live_location::EditMessageLiveLocation, edit_message_live_location::EditMessageLiveLocation,
forward_message::ForwardMessage, get_me::GetMe, send_audio::SendAudio, forward_message::ForwardMessage, get_me::GetMe, send_audio::SendAudio,
@ -58,10 +58,11 @@ impl Bot {
/// ```no_run /// ```no_run
/// use async_telegram_bot::{ /// use async_telegram_bot::{
/// bot::Bot, /// bot::Bot,
/// core::{requests::Request, types::File as TgFile}, /// requests::Request,
/// types::File as TgFile,
/// }; /// };
/// use tokio::fs::File; /// use tokio::fs::File;
/// # use async_telegram_bot::core::requests::RequestError; /// # use async_telegram_bot::requests::RequestError;
/// ///
/// # async fn run() -> Result<(), Box<dyn std::error::Error>> { /// # async fn run() -> Result<(), Box<dyn std::error::Error>> {
/// let bot = Bot::new("TOKEN"); /// let bot = Bot::new("TOKEN");

View file

@ -1,3 +0,0 @@
pub(crate) mod network;
pub mod requests;
pub mod types;

View file

@ -3,8 +3,11 @@ extern crate derive_more;
#[macro_use] #[macro_use]
extern crate serde; extern crate serde;
mod network;
pub mod bot; pub mod bot;
pub mod core;
pub mod errors; pub mod errors;
pub mod requests;
pub mod types;
pub use errors::DownloadError; pub use errors::DownloadError;

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
requests::{RequestError, ResponseResult}, requests::{RequestError, ResponseResult},
types::ResponseParameters, types::ResponseParameters,
}; };

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::{Request, RequestContext, RequestFuture, ResponseResult}, requests::{Request, RequestContext, RequestFuture, ResponseResult},
}; };

View file

@ -1,8 +1,8 @@
use crate::core::network; use crate::network;
use crate::core::requests::{ use crate::requests::{
Request, RequestContext, RequestFuture, ResponseResult, Request, RequestContext, RequestFuture, ResponseResult,
}; };
use crate::core::types::ShippingOption; use crate::types::ShippingOption;
#[derive(Debug, Clone, Serialize)] #[derive(Debug, Clone, Serialize)]
/// If you sent an invoice requesting a shipping address and the parameter /// If you sent an invoice requesting a shipping address and the parameter

View file

@ -1,8 +1,8 @@
use crate::core::network; use crate::network;
use crate::core::requests::{ use crate::requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,
}; };
use crate::core::types::{Message, ReplyMarkup}; use crate::types::{Message, ReplyMarkup};
use serde::Serialize; use serde::Serialize;
#[derive(Debug, Clone, Serialize)] #[derive(Debug, Clone, Serialize)]

View file

@ -1,6 +1,6 @@
use std::path::PathBuf; use std::path::PathBuf;
use crate::core::{ use crate::{
requests::{utils, ChatId}, requests::{utils, ChatId},
types::{InputMedia, ParseMode}, types::{InputMedia, ParseMode},
}; };

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::{ requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,

View file

@ -1,6 +1,6 @@
use crate::core::requests::{ChatId, RequestContext, RequestFuture, ResponseResult, Request}; use crate::requests::{ChatId, RequestContext, RequestFuture, ResponseResult, Request};
use crate::core::types::Chat; use crate::types::Chat;
use crate::core::network; use crate::network;
/// Use this method to get up to date information about the chat /// Use this method to get up to date information about the chat
/// (current name of the user for one-on-one conversations, /// (current name of the user for one-on-one conversations,

View file

@ -1,8 +1,8 @@
use crate::core::network; use crate::network;
use crate::core::requests::{ use crate::requests::{
Request, RequestContext, RequestFuture, ResponseResult, Request, RequestContext, RequestFuture, ResponseResult,
}; };
use crate::core::types::File; use crate::types::File;
/// Use this method to get basic info about a file and prepare it for /// Use this method to get basic info about a file and prepare it for
/// downloading. For the moment, bots can download files of up to 20MB in size. /// downloading. For the moment, bots can download files of up to 20MB in size.

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::{Request, RequestContext, RequestFuture, ResponseResult}, requests::{Request, RequestContext, RequestFuture, ResponseResult},
types::User, types::User,

View file

@ -1,4 +1,4 @@
use crate::core::requests::RequestContext; use crate::requests::RequestContext;
//TODO: complete implementation after user_profile_fotos will be added to //TODO: complete implementation after user_profile_fotos will be added to
// types/mod.rs // types/mod.rs

View file

@ -1,4 +1,4 @@
use crate::core::requests::RequestContext; use crate::requests::RequestContext;
//TODO:: need implementation //TODO:: need implementation
/// Use this method to kick a user from a group, a supergroup or a channel. In /// Use this method to kick a user from a group, a supergroup or a channel. In
/// the case of supergroups and channels, the user will not be able to return to /// the case of supergroups and channels, the user will not be able to return to

View file

@ -1,4 +1,4 @@
use crate::core::requests::RequestContext; use crate::requests::RequestContext;
//TODO:: need implementation //TODO:: need implementation
#[derive(Debug, Clone, Serialize)] #[derive(Debug, Clone, Serialize)]

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::form_builder::FormBuilder, requests::form_builder::FormBuilder,
requests::{ requests::{
@ -32,10 +32,10 @@ pub struct SendAudio<'a> {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
pub parse_mode: Option<ParseMode>, pub parse_mode: Option<ParseMode>,
/// Duration of the audio in seconds /// Duration of the audio in seconds
pub duration: Option<i32>, pub duration: Option<i32>,

View file

@ -1,5 +1,5 @@
use crate::core::network; use crate::network;
use crate::core::requests::{ use crate::requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,
}; };

View file

@ -1,8 +1,8 @@
use crate::core::network; use crate::network;
use crate::core::requests::{ use crate::requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,
}; };
use crate::core::types::{Message, ReplyMarkup}; use crate::types::{Message, ReplyMarkup};
/// Use this method to send phone contacts. /// Use this method to send phone contacts.
/// returned. /// returned.

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::{ requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network::request_multipart, network::request_multipart,
requests::{ requests::{
form_builder::FormBuilder, ChatId, Request, RequestContext, form_builder::FormBuilder, ChatId, Request, RequestContext,

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::{ requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,
@ -23,10 +23,10 @@ pub struct SendMessage<'a> {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
pub parse_mode: Option<ParseMode>, pub parse_mode: Option<ParseMode>,
/// Disables link previews for links in this message /// Disables link previews for links in this message

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::{ requests::{
form_builder::FormBuilder, ChatId, Request, RequestContext, form_builder::FormBuilder, ChatId, Request, RequestContext,
@ -30,10 +30,10 @@ pub struct SendPhoto<'a> {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
pub parse_mode: Option<ParseMode>, pub parse_mode: Option<ParseMode>,
/// Sends the message silently. Users will receive a notification with no /// Sends the message silently. Users will receive a notification with no
/// sound. /// sound.

View file

@ -1,8 +1,8 @@
use crate::core::network; use crate::network;
use crate::core::requests::{ use crate::requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,
}; };
use crate::core::types::{Message, ReplyMarkup}; use crate::types::{Message, ReplyMarkup};
/// Use this method to send a native poll. A native poll can't be sent to a /// Use this method to send a native poll. A native poll can't be sent to a
/// private chat. On success, the sent Message is returned. /// private chat. On success, the sent Message is returned.

View file

@ -1,8 +1,8 @@
use crate::core::network; use crate::network;
use crate::core::requests::{ use crate::requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,
}; };
use crate::core::types::{Message, ReplyMarkup}; use crate::types::{Message, ReplyMarkup};
/// Use this method to send information about a venue. /// Use this method to send information about a venue.
/// Message is returned. /// Message is returned.

View file

@ -1,4 +1,4 @@
use crate::core::{ use crate::{
network, network,
requests::{ requests::{
ChatId, Request, RequestContext, RequestFuture, ResponseResult, ChatId, Request, RequestContext, RequestFuture, ResponseResult,

View file

@ -1,4 +1,4 @@
use crate::core::requests::RequestContext; use crate::requests::RequestContext;
//TODO:: need implementation //TODO:: need implementation
#[derive(Debug, Clone, Serialize)] #[derive(Debug, Clone, Serialize)]

View file

@ -1,4 +1,4 @@
use crate::core::types::PhotoSize; use crate::types::PhotoSize;
#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)] #[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
/// This object represents an animation file (GIF or H.264/MPEG-4 AVC video /// This object represents an animation file (GIF or H.264/MPEG-4 AVC video

View file

@ -1,4 +1,4 @@
use crate::core::types::PhotoSize; use crate::types::PhotoSize;
#[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone)] #[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone)]
pub struct Audio { pub struct Audio {
@ -42,8 +42,8 @@ mod tests {
file_id: "id".to_string(), file_id: "id".to_string(),
width: 320, width: 320,
height: 320, height: 320,
file_size: Some(3452) file_size: Some(3452),
}) }),
}; };
let actual = serde_json::from_str::<Audio>(&json).unwrap(); let actual = serde_json::from_str::<Audio>(&json).unwrap();
assert_eq!(actual, expected) assert_eq!(actual, expected)

View file

@ -1,4 +1,4 @@
use crate::core::types::{Message, User}; use crate::types::{Message, User};
#[derive(Debug, Deserialize, PartialEq, Clone)] #[derive(Debug, Deserialize, PartialEq, Clone)]
pub struct CallbackQuery { pub struct CallbackQuery {
@ -8,7 +8,7 @@ pub struct CallbackQuery {
pub message: Option<Message>, pub message: Option<Message>,
pub inline_message_id: Option<String>, pub inline_message_id: Option<String>,
pub data: Option<String>, pub data: Option<String>,
pub game_short_name: Option<String> pub game_short_name: Option<String>,
} }
#[cfg(test)] #[cfg(test)]
@ -37,13 +37,13 @@ mod tests {
first_name: "firstName".to_string(), first_name: "firstName".to_string(),
last_name: None, last_name: None,
username: None, username: None,
language_code: None language_code: None,
}, },
chat_instance: "123456".to_string(), chat_instance: "123456".to_string(),
message: None, message: None,
inline_message_id: Some("i_m_id".to_string()), inline_message_id: Some("i_m_id".to_string()),
data: Some("some_data".to_string()), data: Some("some_data".to_string()),
game_short_name: Some("game_name".to_string()) game_short_name: Some("game_name".to_string()),
}; };
let actual = serde_json::from_str::<CallbackQuery>(json).unwrap(); let actual = serde_json::from_str::<CallbackQuery>(json).unwrap();
assert_eq!(actual, expected); assert_eq!(actual, expected);

View file

@ -1,4 +1,4 @@
use crate::core::types::{ChatPermissions, ChatPhoto, Message}; use crate::types::{ChatPermissions, ChatPhoto, Message};
#[derive(Debug, Deserialize, PartialEq, Clone)] #[derive(Debug, Deserialize, PartialEq, Clone)]
pub struct Chat { pub struct Chat {
@ -80,7 +80,7 @@ where
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::core::types::*; use crate::types::*;
use serde_json::from_str; use serde_json::from_str;
#[test] #[test]

View file

@ -1,4 +1,4 @@
use crate::core::types::User; use crate::types::User;
/// This object contains information about one member of the chat. /// This object contains information about one member of the chat.
#[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)] #[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)]
@ -63,7 +63,7 @@ pub enum ChatMemberStatus {
Member, Member,
Restricted, Restricted,
Left, Left,
Kicked Kicked,
} }
#[cfg(test)] #[cfg(test)]
@ -103,7 +103,7 @@ mod tests {
first_name: "firstName".to_string(), first_name: "firstName".to_string(),
last_name: None, last_name: None,
username: None, username: None,
language_code: None language_code: None,
}, },
status: ChatMemberStatus::Creator, status: ChatMemberStatus::Creator,
until_date: Some(123456), until_date: Some(123456),
@ -119,7 +119,7 @@ mod tests {
can_send_messages: Some(true), can_send_messages: Some(true),
can_send_media_messages: Some(true), can_send_media_messages: Some(true),
can_send_other_messages: Some(true), can_send_other_messages: Some(true),
can_add_web_page_previews: Some(true) can_add_web_page_previews: Some(true),
}; };
let actual = serde_json::from_str::<ChatMember>(&json).unwrap(); let actual = serde_json::from_str::<ChatMember>(&json).unwrap();
assert_eq!(actual, expected) assert_eq!(actual, expected)

View file

@ -1,4 +1,4 @@
use crate::core::types::{Location, User}; use crate::types::{Location, User};
#[derive(Debug, Deserialize, Clone, PartialEq)] #[derive(Debug, Deserialize, Clone, PartialEq)]
/// Represents a result of an inline query that was chosen by the user and /// Represents a result of an inline query that was chosen by the user and

View file

@ -1,4 +1,4 @@
use crate::core::types::PhotoSize; use crate::types::PhotoSize;
#[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone, Serialize)] #[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone, Serialize)]
pub struct Document { pub struct Document {

View file

@ -1,6 +1,6 @@
use serde::Deserialize; use serde::Deserialize;
use crate::core::types::{Animation, MessageEntity, PhotoSize}; use crate::types::{Animation, MessageEntity, PhotoSize};
#[derive(Debug, Deserialize, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Deserialize, Clone, PartialEq, Eq, Hash)]
/// This object represents a game. Use BotFather to create and edit games, their /// This object represents a game. Use BotFather to create and edit games, their

View file

@ -1,6 +1,6 @@
use serde::Deserialize; use serde::Deserialize;
use crate::core::types::user::User; use crate::types::user::User;
#[derive(Debug, Deserialize, Clone)] #[derive(Debug, Deserialize, Clone)]
/// This object represents one row of the high scores table for a game. /// This object represents one row of the high scores table for a game.

View file

@ -45,7 +45,7 @@ pub enum InlineKeyboardButtonKind {
/// ///
/// Example: /// Example:
/// ```edition2018 /// ```edition2018
/// use async_telegram_bot::core::types::InlineKeyboardButton; /// use async_telegram_bot::types::InlineKeyboardButton;
/// ///
/// fn main() { /// fn main() {
/// let url_button = InlineKeyboardButton::url( /// let url_button = InlineKeyboardButton::url(

View file

@ -1,4 +1,4 @@
use crate::core::types::InlineKeyboardButton; use crate::types::InlineKeyboardButton;
/// This object represents an inline keyboard that appears right next to the /// This object represents an inline keyboard that appears right next to the
/// message it belongs to. /// message it belongs to.
@ -16,7 +16,7 @@ pub struct InlineKeyboardMarkup {
/// ///
/// Example: /// Example:
/// ``` /// ```
/// use async_telegram_bot::core::types::{ /// use async_telegram_bot::types::{
/// InlineKeyboardButton, InlineKeyboardMarkup, /// InlineKeyboardButton, InlineKeyboardMarkup,
/// }; /// };
/// ///

View file

@ -1,4 +1,4 @@
use crate::core::types::{Location, User}; use crate::types::{Location, User};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQuery { pub struct InlineQuery {

View file

@ -1,4 +1,4 @@
use crate::core::types::{ use crate::types::{
InlineQueryResultArticle, InlineQueryResultAudio, InlineQueryResultArticle, InlineQueryResultAudio,
InlineQueryResultCachedAudio, InlineQueryResultCachedDocument, InlineQueryResultCachedAudio, InlineQueryResultCachedDocument,
InlineQueryResultCachedGif, InlineQueryResultCachedMpeg4Gif, InlineQueryResultCachedGif, InlineQueryResultCachedMpeg4Gif,
@ -49,9 +49,9 @@ pub enum InlineQueryResult {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::core::types::inline_keyboard_markup::InlineKeyboardMarkup; use crate::types::inline_keyboard_markup::InlineKeyboardMarkup;
use crate::core::types::parse_mode::ParseMode; use crate::types::parse_mode::ParseMode;
use crate::core::types::{ use crate::types::{
InlineQueryResult, InlineQueryResultCachedAudio, InputMessageContent, InlineQueryResult, InlineQueryResultCachedAudio, InputMessageContent,
}; };

View file

@ -1,4 +1,4 @@
use crate::core::types::{InlineKeyboardMarkup, InputMessageContent}; use crate::types::{InlineKeyboardMarkup, InputMessageContent};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultArticle { pub struct InlineQueryResultArticle {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultAudio { pub struct InlineQueryResultAudio {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedAudio { pub struct InlineQueryResultCachedAudio {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedDocument { pub struct InlineQueryResultCachedDocument {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedGif { pub struct InlineQueryResultCachedGif {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedMpeg4Gif { pub struct InlineQueryResultCachedMpeg4Gif {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedPhoto { pub struct InlineQueryResultCachedPhoto {

View file

@ -1,4 +1,4 @@
use crate::core::types::{InlineKeyboardMarkup, InputMessageContent}; use crate::types::{InlineKeyboardMarkup, InputMessageContent};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedSticker { pub struct InlineQueryResultCachedSticker {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedVideo { pub struct InlineQueryResultCachedVideo {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultCachedVoice { pub struct InlineQueryResultCachedVoice {

View file

@ -1,4 +1,4 @@
use crate::core::types::{InlineKeyboardMarkup, InputMessageContent}; use crate::types::{InlineKeyboardMarkup, InputMessageContent};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultContact { pub struct InlineQueryResultContact {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultDocument { pub struct InlineQueryResultDocument {

View file

@ -1,4 +1,4 @@
use crate::core::types::InlineKeyboardMarkup; use crate::types::InlineKeyboardMarkup;
#[derive(Debug, Serialize, Hash, PartialEq, Eq, Clone)] #[derive(Debug, Serialize, Hash, PartialEq, Eq, Clone)]
pub struct InlineQueryResultGame { pub struct InlineQueryResultGame {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultGif { pub struct InlineQueryResultGif {

View file

@ -1,4 +1,4 @@
use crate::core::types::{InlineKeyboardMarkup, InputMessageContent}; use crate::types::{InlineKeyboardMarkup, InputMessageContent};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultLocation { pub struct InlineQueryResultLocation {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultMpeg4Gif { pub struct InlineQueryResultMpeg4Gif {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
/// Represents a link to a photo. By default, this photo will be sent by the /// Represents a link to a photo. By default, this photo will be sent by the
/// user with optional caption. Alternatively, you can use input_message_content /// user with optional caption. Alternatively, you can use input_message_content

View file

@ -1,4 +1,4 @@
use crate::core::types::{InlineKeyboardMarkup, InputMessageContent}; use crate::types::{InlineKeyboardMarkup, InputMessageContent};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultVenue { pub struct InlineQueryResultVenue {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultVideo { pub struct InlineQueryResultVideo {

View file

@ -1,6 +1,4 @@
use crate::core::types::{ use crate::types::{InlineKeyboardMarkup, InputMessageContent, ParseMode};
InlineKeyboardMarkup, InputMessageContent, ParseMode,
};
#[derive(Debug, Serialize, PartialEq, Clone)] #[derive(Debug, Serialize, PartialEq, Clone)]
pub struct InlineQueryResultVoice { pub struct InlineQueryResultVoice {

View file

@ -1,4 +1,4 @@
use crate::core::types::{InputFile, ParseMode}; use crate::types::{InputFile, ParseMode};
// TODO: should variants use new-type? // TODO: should variants use new-type?
#[derive(Debug, Serialize, PartialEq, Eq, Clone)] #[derive(Debug, Serialize, PartialEq, Eq, Clone)]
@ -18,10 +18,10 @@ pub enum InputMedia {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
parse_mode: Option<ParseMode>, parse_mode: Option<ParseMode>,
}, },
@ -35,7 +35,7 @@ pub enum InputMedia {
/// size. A thumbnails width and height should not exceed 320. /// size. A thumbnails width and height should not exceed 320.
/// Ignored if the file is not uploaded using [InputFile::File]. /// Ignored if the file is not uploaded using [InputFile::File].
/// ///
/// [InputFile::File]: crate::core::types::InputFile::File /// [InputFile::File]: crate::types::InputFile::File
thumb: Option<InputFile>, thumb: Option<InputFile>,
/// Caption of the video to be sent, 0-1024 characters. /// Caption of the video to be sent, 0-1024 characters.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
@ -44,10 +44,10 @@ pub enum InputMedia {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
parse_mode: Option<ParseMode>, parse_mode: Option<ParseMode>,
/// Video width /// Video width
@ -74,7 +74,7 @@ pub enum InputMedia {
/// size. A thumbnails width and height should not exceed 320. /// size. A thumbnails width and height should not exceed 320.
/// Ignored if the file is not uploaded using [InputFile::File]. /// Ignored if the file is not uploaded using [InputFile::File].
/// ///
/// [InputFile::File]: crate::core::types::InputFile::File /// [InputFile::File]: crate::types::InputFile::File
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
thumb: Option<InputFile>, thumb: Option<InputFile>,
/// Caption of the animation to be sent, 0-1024 characters /// Caption of the animation to be sent, 0-1024 characters
@ -84,10 +84,10 @@ pub enum InputMedia {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
parse_mode: Option<ParseMode>, parse_mode: Option<ParseMode>,
/// Animation width /// Animation width
@ -110,7 +110,7 @@ pub enum InputMedia {
/// size. A thumbnails width and height should not exceed 320. /// size. A thumbnails width and height should not exceed 320.
/// Ignored if the file is not uploaded using [InputFile::File]. /// Ignored if the file is not uploaded using [InputFile::File].
/// ///
/// [InputFile::File]: crate::core::types::InputFile::File /// [InputFile::File]: crate::types::InputFile::File
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
thumb: Option<InputFile>, thumb: Option<InputFile>,
/// Caption of the audio to be sent, 0-1024 characters /// Caption of the audio to be sent, 0-1024 characters
@ -120,10 +120,10 @@ pub enum InputMedia {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
parse_mode: Option<String>, parse_mode: Option<String>,
/// Duration of the audio in seconds /// Duration of the audio in seconds
@ -146,7 +146,7 @@ pub enum InputMedia {
/// size. A thumbnails width and height should not exceed 320. /// size. A thumbnails width and height should not exceed 320.
/// Ignored if the file is not uploaded using [InputFile::File]. /// Ignored if the file is not uploaded using [InputFile::File].
/// ///
/// [InputFile::File]: crate::core::types::InputFile::File /// [InputFile::File]: crate::types::InputFile::File
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
thumb: Option<InputFile>, thumb: Option<InputFile>,
/// Caption of the document to be sent, 0-1024 characters /// Caption of the document to be sent, 0-1024 characters
@ -156,10 +156,10 @@ pub enum InputMedia {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
parse_mode: Option<ParseMode>, parse_mode: Option<ParseMode>,
}, },

View file

@ -1,6 +1,6 @@
use serde::Serialize; use serde::Serialize;
use crate::core::types::ParseMode; use crate::types::ParseMode;
#[derive(Debug, Serialize, Clone, PartialEq)] #[derive(Debug, Serialize, Clone, PartialEq)]
#[serde(untagged)] #[serde(untagged)]
@ -18,10 +18,10 @@ pub enum InputMessageContent {
/// if you want Telegram apps to show [bold, italic, fixed-width text /// if you want Telegram apps to show [bold, italic, fixed-width text
/// or inline URLs] in the media caption. /// or inline URLs] in the media caption.
/// ///
/// [Markdown]: crate::core::types::ParseMode::Markdown /// [Markdown]: crate::types::ParseMode::Markdown
/// [Html]: crate::core::types::ParseMode::Html /// [Html]: crate::types::ParseMode::Html
/// [bold, italic, fixed-width text or inline URLs]: /// [bold, italic, fixed-width text or inline URLs]:
/// crate::core::types::ParseMode /// crate::types::ParseMode
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
parse_mode: Option<ParseMode>, parse_mode: Option<ParseMode>,

View file

@ -1,4 +1,4 @@
use crate::core::types::{ use crate::types::{
Animation, Audio, Chat, Contact, Document, Game, InlineKeyboardMarkup, Animation, Audio, Chat, Contact, Document, Game, InlineKeyboardMarkup,
Invoice, Location, MessageEntity, PassportData, PhotoSize, Poll, Sticker, Invoice, Location, MessageEntity, PassportData, PhotoSize, Poll, Sticker,
SuccessfulPayment, User, Venue, Video, VideoNote, Voice, SuccessfulPayment, User, Venue, Video, VideoNote, Voice,
@ -17,9 +17,10 @@ pub struct Message {
impl Message { impl Message {
fn text(&self) -> Option<&str> { fn text(&self) -> Option<&str> {
if let MessageKind::Common { if let MessageKind::Common {
media_kind: MediaKind::Text { media_kind: MediaKind::Text { ref text, .. },
ref text, .. ..
}, .. } = self.kind { } = self.kind
{
Some(text) Some(text)
} else { } else {
None None
@ -202,7 +203,7 @@ pub enum MediaKind {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::core::types::*; use crate::types::*;
use serde_json::from_str; use serde_json::from_str;
#[test] #[test]

View file

@ -1,4 +1,4 @@
use crate::core::types::User; use crate::types::User;
#[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone, Serialize)] #[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone, Serialize)]
pub struct MessageEntity { pub struct MessageEntity {

View file

@ -1,4 +1,4 @@
use crate::core::types::ShippingAddress; use crate::types::ShippingAddress;
#[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone, Serialize)] #[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone, Serialize)]
pub struct OrderInfo { pub struct OrderInfo {

View file

@ -1,4 +1,4 @@
use crate::core::types::{OrderInfo, User}; use crate::types::{OrderInfo, User};
#[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)] #[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)]
pub struct PreCheckoutQuery { pub struct PreCheckoutQuery {

View file

@ -1,4 +1,4 @@
use crate::core::types::KeyboardButton; use crate::types::KeyboardButton;
/// This object represents a custom keyboard with reply options. /// This object represents a custom keyboard with reply options.
#[derive(Debug, Serialize, Deserialize, Hash, PartialEq, Eq, Clone)] #[derive(Debug, Serialize, Deserialize, Hash, PartialEq, Eq, Clone)]

View file

@ -1,4 +1,4 @@
use crate::core::types::{ use crate::types::{
ForceReply, InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply, InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove,
}; };

View file

@ -1,5 +1,5 @@
use crate::core::requests::ChatId; use crate::requests::ChatId;
use crate::core::types::{InlineKeyboardMarkup, LabeledPrice}; use crate::types::{InlineKeyboardMarkup, LabeledPrice};
#[derive(Debug, PartialEq, Eq, Clone)] #[derive(Debug, PartialEq, Eq, Clone)]
pub struct SendInvoice { pub struct SendInvoice {

View file

@ -1,4 +1,4 @@
use crate::core::types::LabeledPrice; use crate::types::LabeledPrice;
#[derive(Debug, Hash, PartialEq, Eq, Clone, Serialize)] #[derive(Debug, Hash, PartialEq, Eq, Clone, Serialize)]
/// This object represents one shipping option. /// This object represents one shipping option.

View file

@ -1,4 +1,4 @@
use crate::core::types::{ShippingAddress, User}; use crate::types::{ShippingAddress, User};
#[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)] #[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)]
pub struct ShippingQuery { pub struct ShippingQuery {

View file

@ -1,4 +1,4 @@
use crate::core::types::{MaskPosition, PhotoSize}; use crate::types::{MaskPosition, PhotoSize};
#[derive(Debug, Deserialize, PartialEq, Clone)] #[derive(Debug, Deserialize, PartialEq, Clone)]
pub struct Sticker { pub struct Sticker {

View file

@ -1,4 +1,4 @@
use crate::core::types::Sticker; use crate::types::Sticker;
#[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)] #[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone)]
pub struct Sticker { pub struct Sticker {

View file

@ -1,4 +1,4 @@
use crate::core::types::OrderInfo; use crate::types::OrderInfo;
#[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone, Serialize)] #[derive(Debug, Deserialize, Hash, PartialEq, Eq, Clone, Serialize)]
pub struct SuccessfulPayment { pub struct SuccessfulPayment {

View file

@ -1,4 +1,4 @@
use crate::core::types::{CallbackQuery, ChosenInlineResult, Message}; use crate::types::{CallbackQuery, ChosenInlineResult, Message};
#[derive(Debug, Deserialize, PartialEq, Clone)] #[derive(Debug, Deserialize, PartialEq, Clone)]
pub struct Update { pub struct Update {

View file

@ -1,7 +1,7 @@
use crate::core::types::PhotoSize; use crate::types::PhotoSize;
#[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone, Serialize)] #[derive(Debug, Deserialize, Eq, Hash, PartialEq, Clone, Serialize)]
pub struct UserProfilePhotos { pub struct UserProfilePhotos {
pub total_count: u32, pub total_count: u32,
pub photos: Vec<Vec<PhotoSize>> pub photos: Vec<Vec<PhotoSize>>,
} }

View file

@ -1,4 +1,4 @@
use crate::core::types::Location; use crate::types::Location;
/// This object represents a venue. /// This object represents a venue.
#[derive(Debug, Deserialize, PartialEq, Serialize, Clone)] #[derive(Debug, Deserialize, PartialEq, Serialize, Clone)]

Some files were not shown because too many files have changed in this diff Show more