Cleanup setters in types::*

- Remove useless setters for types which are only returned from telegam
- Add `const` on setters (where possible)
- Make `Poll::{open_period,close_date}` public
This commit is contained in:
Waffle 2021-01-26 15:35:08 +03:00
parent d663879423
commit 393f6ee7a4
45 changed files with 98 additions and 3095 deletions

View file

@ -41,86 +41,6 @@ pub struct Animation {
pub file_size: Option<u32>, pub file_size: Option<u32>,
} }
impl Animation {
pub fn new<S1, S2>(
file_id: S1,
file_unique_id: S2,
width: u32,
height: u32,
duration: u32,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
width,
height,
duration,
thumb: None,
file_name: None,
mime_type: None,
file_size: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn width(mut self, val: u32) -> Self {
self.width = val;
self
}
pub fn height(mut self, val: u32) -> Self {
self.height = val;
self
}
pub fn duration(mut self, val: u32) -> Self {
self.duration = val;
self
}
pub fn thumb(mut self, val: PhotoSize) -> Self {
self.thumb = Some(val);
self
}
pub fn file_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_name = Some(val.into());
self
}
pub fn mime_type(mut self, val: Mime) -> Self {
self.mime_type = Some(val);
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = Some(val);
self
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View file

@ -38,77 +38,6 @@ pub struct Audio {
pub thumb: Option<PhotoSize>, pub thumb: Option<PhotoSize>,
} }
impl Audio {
pub fn new<S1, S2>(file_id: S1, file_unique_id: S2, duration: u32) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
duration,
performer: None,
title: None,
mime_type: None,
file_size: None,
thumb: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn duration(mut self, val: u32) -> Self {
self.duration = val;
self
}
pub fn performer<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.performer = Some(val.into());
self
}
pub fn title<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.title = Some(val.into());
self
}
pub fn mime_type(mut self, val: Mime) -> Self {
self.mime_type = Some(val);
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = Some(val);
self
}
pub fn thumb(mut self, val: PhotoSize) -> Self {
self.thumb = Some(val);
self
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View file

@ -49,74 +49,6 @@ pub struct CallbackQuery {
pub game_short_name: Option<String>, pub game_short_name: Option<String>,
} }
impl CallbackQuery {
pub fn new<S1, S2>(id: S1, from: User, chat_instance: S2) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
id: id.into(),
from,
message: None,
inline_message_id: None,
chat_instance: chat_instance.into(),
data: None,
game_short_name: None,
}
}
pub fn id<S>(mut self, id: S) -> Self
where
S: Into<String>,
{
self.id = id.into();
self
}
pub fn from(mut self, val: User) -> Self {
self.from = val;
self
}
pub fn message(mut self, val: Message) -> Self {
self.message = Some(val);
self
}
pub fn inline_message_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.inline_message_id = Some(val.into());
self
}
pub fn chat_instance<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.chat_instance = val.into();
self
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = Some(val.into());
self
}
pub fn game_short_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.game_short_name = Some(val.into());
self
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View file

@ -24,31 +24,6 @@ pub struct Chat {
pub photo: Option<ChatPhoto>, pub photo: Option<ChatPhoto>,
} }
impl Chat {
pub fn new(id: i64, kind: ChatKind) -> Self {
Self {
id,
kind,
photo: None,
}
}
pub fn id(mut self, val: i64) -> Self {
self.id = val;
self
}
pub fn kind(mut self, val: ChatKind) -> Self {
self.kind = val;
self
}
pub fn photo(mut self, val: ChatPhoto) -> Self {
self.photo = Some(val);
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)] #[serde(untagged)]
@ -91,47 +66,6 @@ pub struct ChatPublic {
pub pinned_message: Option<Box<Message>>, pub pinned_message: Option<Box<Message>>,
} }
impl ChatPublic {
pub fn new(kind: PublicChatKind) -> Self {
Self {
title: None,
kind,
description: None,
invite_link: None,
pinned_message: None,
}
}
pub fn title<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.title = Some(val.into());
self
}
pub fn description<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.description = Some(val.into());
self
}
pub fn invite_link<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.invite_link = Some(val.into());
self
}
pub fn pinned_message(mut self, val: Message) -> Self {
self.pinned_message = Some(Box::new(val));
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ChatPrivate { pub struct ChatPrivate {
@ -152,36 +86,6 @@ pub struct ChatPrivate {
pub last_name: Option<String>, pub last_name: Option<String>,
} }
impl ChatPrivate {
pub fn new() -> Self {
Self::default()
}
pub fn username<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.username = Some(val.into());
self
}
pub fn first_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.first_name = Some(val.into());
self
}
pub fn last_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.last_name = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")] #[serde(rename_all = "snake_case")]
@ -199,12 +103,6 @@ pub struct PublicChatChannel {
pub username: Option<String>, pub username: Option<String>,
} }
impl PublicChatChannel {
pub fn new() -> Self {
Self::default()
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Default, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Default, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct PublicChatGroup { pub struct PublicChatGroup {
@ -215,12 +113,6 @@ pub struct PublicChatGroup {
pub permissions: Option<ChatPermissions>, pub permissions: Option<ChatPermissions>,
} }
impl PublicChatGroup {
pub fn new() -> Self {
Self::default()
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Default, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Default, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct PublicChatSupergroup { pub struct PublicChatSupergroup {
@ -253,12 +145,6 @@ pub struct PublicChatSupergroup {
pub slow_mode_delay: Option<i32>, pub slow_mode_delay: Option<i32>,
} }
impl PublicChatSupergroup {
pub fn new() -> Self {
Self::default()
}
}
struct PrivateChatKindVisitor; struct PrivateChatKindVisitor;
impl<'de> serde::de::Visitor<'de> for PrivateChatKindVisitor { impl<'de> serde::de::Visitor<'de> for PrivateChatKindVisitor {

View file

@ -41,7 +41,56 @@ pub struct ChatPermissions {
} }
impl ChatPermissions { impl ChatPermissions {
pub fn new() -> Self { pub const fn new() -> Self {
Self::default() Self {
can_send_messages: None,
can_send_media_messages: None,
can_send_polls: None,
can_send_other_messages: None,
can_add_web_page_previews: None,
can_change_info: None,
can_invite_users: None,
can_pin_messages: None,
}
}
pub const fn can_send_messages(mut self, val: bool) -> Self {
self.can_send_messages = Some(val);
self
}
pub const fn can_send_media_messages(mut self, val: bool) -> Self {
self.can_send_media_messages = Some(val);
self
}
pub const fn can_send_polls(mut self, val: bool) -> Self {
self.can_send_polls = Some(val);
self
}
pub const fn can_send_other_messages(mut self, val: bool) -> Self {
self.can_send_other_messages = Some(val);
self
}
pub const fn can_add_web_page_previews(mut self, val: bool) -> Self {
self.can_add_web_page_previews = Some(val);
self
}
pub const fn can_change_info(mut self, val: bool) -> Self {
self.can_change_info = Some(val);
self
}
pub const fn can_invite_users(mut self, val: bool) -> Self {
self.can_invite_users = Some(val);
self
}
pub const fn can_pin_messages(mut self, val: bool) -> Self {
self.can_pin_messages = Some(val);
self
} }
} }

View file

@ -25,57 +25,3 @@ pub struct ChatPhoto {
/// download or reuse the file. /// download or reuse the file.
pub big_file_unique_id: String, pub big_file_unique_id: String,
} }
impl ChatPhoto {
pub fn new<S1, S2, S3, S4>(
small_file_id: S1,
small_file_unique_id: S2,
big_file_id: S3,
big_file_unique_id: S4,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
S3: Into<String>,
S4: Into<String>,
{
Self {
small_file_id: small_file_id.into(),
small_file_unique_id: small_file_unique_id.into(),
big_file_id: big_file_id.into(),
big_file_unique_id: big_file_unique_id.into(),
}
}
pub fn small_file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.small_file_id = val.into();
self
}
pub fn small_file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.small_file_unique_id = val.into();
self
}
pub fn big_file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.big_file_id = val.into();
self
}
pub fn big_file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.big_file_unique_id = val.into();
self
}
}

View file

@ -32,53 +32,3 @@ pub struct ChosenInlineResult {
/// The query that was used to obtain the result. /// The query that was used to obtain the result.
pub query: String, pub query: String,
} }
impl ChosenInlineResult {
pub fn new<S1, S2>(result_id: S1, from: User, query: S2) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
result_id: result_id.into(),
from,
location: None,
inline_message_id: None,
query: query.into(),
}
}
pub fn result_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.result_id = val.into();
self
}
pub fn from(mut self, val: User) -> Self {
self.from = val;
self
}
pub fn location<S>(mut self, val: Location) -> Self {
self.location = val.into();
self
}
pub fn inline_message_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.inline_message_id = Some(val.into());
self
}
pub fn query<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.query = val.into();
self
}
}

View file

@ -23,56 +23,3 @@ pub struct Contact {
/// [vCard]: https://en.wikipedia.org/wiki/VCard /// [vCard]: https://en.wikipedia.org/wiki/VCard
pub vcard: Option<String>, pub vcard: Option<String>,
} }
impl Contact {
pub fn new<S1, S2>(phone_number: S1, first_name: S2) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
phone_number: phone_number.into(),
first_name: first_name.into(),
last_name: None,
user_id: None,
vcard: None,
}
}
pub fn phone_number<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.phone_number = val.into();
self
}
pub fn first_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.first_name = val.into();
self
}
pub fn last_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.last_name = Some(val.into());
self
}
pub fn user_id(mut self, val: i32) -> Self {
self.user_id = Some(val);
self
}
pub fn vcard<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.vcard = Some(val.into());
self
}
}

View file

@ -19,19 +19,3 @@ pub struct Dice {
/// [`DiceEmoji::Basketball`]:crate::types::DiceEmoji::Basketball /// [`DiceEmoji::Basketball`]:crate::types::DiceEmoji::Basketball
value: i32, value: i32,
} }
impl Dice {
pub fn new(emoji: DiceEmoji, value: i32) -> Self {
Self { emoji, value }
}
pub fn emoji(mut self, val: DiceEmoji) -> Self {
self.emoji = val;
self
}
pub fn value<S>(mut self, val: i32) -> Self {
self.value = val;
self
}
}

View file

@ -35,59 +35,3 @@ pub struct Document {
/// A size of a file. /// A size of a file.
pub file_size: Option<u32>, pub file_size: Option<u32>,
} }
impl Document {
pub fn new<S1, S2>(file_id: S1, file_unique_id: S2) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
thumb: None,
file_name: None,
mime_type: None,
file_size: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn thumb(mut self, val: PhotoSize) -> Self {
self.thumb = Some(val);
self
}
pub fn file_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_name = Some(val.into());
self
}
pub fn mime_type(mut self, val: Mime) -> Self {
self.mime_type = Some(val);
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = Some(val);
self
}
}

View file

@ -30,45 +30,6 @@ pub struct EncryptedCredentials {
pub secret: String, pub secret: String,
} }
impl EncryptedCredentials {
pub fn new<S1, S2, S3>(data: S1, hash: S2, secret: S3) -> Self
where
S1: Into<String>,
S2: Into<String>,
S3: Into<String>,
{
Self {
data: data.into(),
hash: hash.into(),
secret: secret.into(),
}
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = val.into();
self
}
pub fn hash<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.hash = val.into();
self
}
pub fn secret<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.secret = val.into();
self
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View file

@ -19,31 +19,6 @@ pub struct EncryptedPassportElement {
pub kind: EncryptedPassportElementKind, pub kind: EncryptedPassportElementKind,
} }
impl EncryptedPassportElement {
pub fn new<S>(hash: S, kind: EncryptedPassportElementKind) -> Self
where
S: Into<String>,
{
Self {
hash: hash.into(),
kind,
}
}
pub fn hash<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.hash = val.into();
self
}
pub fn kind(mut self, val: EncryptedPassportElementKind) -> Self {
self.kind = val;
self
}
}
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")] #[serde(rename_all = "snake_case")]
#[allow(clippy::large_enum_variant)] #[allow(clippy::large_enum_variant)]
@ -77,23 +52,6 @@ pub struct EncryptedPassportElementPersonalDetails {
pub data: String, pub data: String,
} }
impl EncryptedPassportElementPersonalDetails {
pub fn new<S>(data: S) -> Self
where
S: Into<String>,
{
Self { data: data.into() }
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = val.into();
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementPassport { pub struct EncryptedPassportElementPassport {
@ -138,46 +96,6 @@ pub struct EncryptedPassportElementPassport {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementPassport {
pub fn new<S>(data: S, front_side: PassportFile, selfie: PassportFile) -> Self
where
S: Into<String>,
{
Self {
data: data.into(),
front_side,
selfie,
translation: None,
}
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = val.into();
self
}
pub fn front_side(mut self, val: PassportFile) -> Self {
self.front_side = val;
self
}
pub fn selfie(mut self, val: PassportFile) -> Self {
self.selfie = val;
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementDriverLicense { pub struct EncryptedPassportElementDriverLicense {
@ -231,56 +149,6 @@ pub struct EncryptedPassportElementDriverLicense {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementDriverLicense {
pub fn new<S>(
data: S,
front_side: PassportFile,
reverse_side: PassportFile,
selfie: PassportFile,
) -> Self
where
S: Into<String>,
{
Self {
data: data.into(),
front_side,
reverse_side,
selfie,
translation: None,
}
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = val.into();
self
}
pub fn front_side(mut self, val: PassportFile) -> Self {
self.front_side = val;
self
}
pub fn reverse_side(mut self, val: PassportFile) -> Self {
self.reverse_side = val;
self
}
pub fn selfie(mut self, val: PassportFile) -> Self {
self.selfie = val;
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementIdentityCard { pub struct EncryptedPassportElementIdentityCard {
@ -334,56 +202,6 @@ pub struct EncryptedPassportElementIdentityCard {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementIdentityCard {
pub fn new<S>(
data: S,
front_side: PassportFile,
reverse_side: PassportFile,
selfie: PassportFile,
) -> Self
where
S: Into<String>,
{
Self {
data: data.into(),
front_side,
reverse_side,
selfie,
translation: None,
}
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = val.into();
self
}
pub fn front_side(mut self, val: PassportFile) -> Self {
self.front_side = val;
self
}
pub fn reverse_side(mut self, val: PassportFile) -> Self {
self.reverse_side = val;
self
}
pub fn selfie(mut self, val: PassportFile) -> Self {
self.selfie = val;
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementInternalPassport { pub struct EncryptedPassportElementInternalPassport {
@ -428,46 +246,6 @@ pub struct EncryptedPassportElementInternalPassport {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementInternalPassport {
pub fn new<S>(data: S, front_side: PassportFile, selfie: PassportFile) -> Self
where
S: Into<String>,
{
Self {
data: data.into(),
front_side,
selfie,
translation: None,
}
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = val.into();
self
}
pub fn front_side(mut self, val: PassportFile) -> Self {
self.front_side = val;
self
}
pub fn selfie(mut self, val: PassportFile) -> Self {
self.selfie = val;
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementAddress { pub struct EncryptedPassportElementAddress {
@ -482,23 +260,6 @@ pub struct EncryptedPassportElementAddress {
pub data: String, pub data: String,
} }
impl EncryptedPassportElementAddress {
pub fn new<S>(data: S) -> Self
where
S: Into<String>,
{
Self { data: data.into() }
}
pub fn data<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.data = val.into();
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementUtilityBill { pub struct EncryptedPassportElementUtilityBill {
@ -525,34 +286,6 @@ pub struct EncryptedPassportElementUtilityBill {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementUtilityBill {
pub fn new<F>(files: F) -> Self
where
F: Into<Vec<PassportFile>>,
{
Self {
files: files.into(),
translation: None,
}
}
pub fn files<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.files = val.into();
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementBankStatement { pub struct EncryptedPassportElementBankStatement {
@ -579,34 +312,6 @@ pub struct EncryptedPassportElementBankStatement {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementBankStatement {
pub fn new<F>(files: F) -> Self
where
F: Into<Vec<PassportFile>>,
{
Self {
files: files.into(),
translation: None,
}
}
pub fn files<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.files = val.into();
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementRentalAgreement { pub struct EncryptedPassportElementRentalAgreement {
@ -633,34 +338,6 @@ pub struct EncryptedPassportElementRentalAgreement {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementRentalAgreement {
pub fn new<F>(files: F) -> Self
where
F: Into<Vec<PassportFile>>,
{
Self {
files: files.into(),
translation: None,
}
}
pub fn files<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.files = val.into();
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementPassportRegistration { pub struct EncryptedPassportElementPassportRegistration {
@ -687,34 +364,6 @@ pub struct EncryptedPassportElementPassportRegistration {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementPassportRegistration {
pub fn new<F>(files: F) -> Self
where
F: Into<Vec<PassportFile>>,
{
Self {
files: files.into(),
translation: None,
}
}
pub fn files<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.files = val.into();
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementTemporaryRegistration { pub struct EncryptedPassportElementTemporaryRegistration {
@ -741,34 +390,6 @@ pub struct EncryptedPassportElementTemporaryRegistration {
pub translation: Option<Vec<PassportFile>>, pub translation: Option<Vec<PassportFile>>,
} }
impl EncryptedPassportElementTemporaryRegistration {
pub fn new<F>(files: F) -> Self
where
F: Into<Vec<PassportFile>>,
{
Self {
files: files.into(),
translation: None,
}
}
pub fn files<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.files = val.into();
self
}
pub fn translation<P>(mut self, val: P) -> Self
where
P: Into<Vec<PassportFile>>,
{
self.translation = Some(val.into());
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementPhoneNumber { pub struct EncryptedPassportElementPhoneNumber {
@ -777,47 +398,9 @@ pub struct EncryptedPassportElementPhoneNumber {
pub phone_number: String, pub phone_number: String,
} }
impl EncryptedPassportElementPhoneNumber {
pub fn new<S>(phone_number: S) -> Self
where
S: Into<String>,
{
Self {
phone_number: phone_number.into(),
}
}
pub fn phone_number<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.phone_number = val.into();
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElementEmail { pub struct EncryptedPassportElementEmail {
/// User's verified email address, available only for `email` type. /// User's verified email address, available only for `email` type.
pub email: String, pub email: String,
} }
impl EncryptedPassportElementEmail {
pub fn new<S>(email: S) -> Self
where
S: Into<String>,
{
Self {
email: email.into(),
}
}
pub fn email<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.email = val.into();
self
}
}

View file

@ -30,48 +30,3 @@ pub struct File {
/// crate::net::Download::download_file /// crate::net::Download::download_file
pub file_path: String, pub file_path: String,
} }
impl File {
pub fn new<S1, S2, S3>(file_id: S1, file_unique_id: S2, file_size: u32, file_path: S3) -> Self
where
S1: Into<String>,
S2: Into<String>,
S3: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
file_size,
file_path: file_path.into(),
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = val;
self
}
pub fn file_path<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
}

View file

@ -29,11 +29,14 @@ pub struct ForceReply {
} }
impl ForceReply { impl ForceReply {
pub fn new() -> Self { pub const fn new() -> Self {
Self::default() Self {
force_reply: True,
selective: None,
}
} }
pub fn selective(mut self, val: bool) -> Self { pub const fn selective(mut self, val: bool) -> Self {
self.selective = Some(val); self.selective = Some(val);
self self
} }

View file

@ -39,66 +39,3 @@ pub struct Game {
/// [@Botfather]: https://t.me/botfather /// [@Botfather]: https://t.me/botfather
pub animation: Option<Animation>, pub animation: Option<Animation>,
} }
impl Game {
pub fn new<S1, S2, P>(title: S1, description: S2, photo: P) -> Self
where
S1: Into<String>,
S2: Into<String>,
P: Into<Vec<PhotoSize>>,
{
Self {
title: title.into(),
description: description.into(),
photo: photo.into(),
text: None,
text_entities: None,
animation: None,
}
}
pub fn title<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.title = val.into();
self
}
pub fn description<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.description = val.into();
self
}
pub fn photo<P>(mut self, val: P) -> Self
where
P: Into<Vec<PhotoSize>>,
{
self.photo = val.into();
self
}
pub fn text<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.text = Some(val.into());
self
}
pub fn text_entities<T>(mut self, val: T) -> Self
where
T: Into<Vec<MessageEntity>>,
{
self.text_entities = Some(val.into());
self
}
pub fn animation(mut self, val: Animation) -> Self {
self.animation = Some(val);
self
}
}

View file

@ -16,28 +16,3 @@ pub struct GameHighScore {
/// Score. /// Score.
pub score: u32, pub score: u32,
} }
impl GameHighScore {
pub fn new(position: u32, user: User, score: u32) -> Self {
Self {
position,
user,
score,
}
}
pub fn position(mut self, val: u32) -> Self {
self.position = val;
self
}
pub fn user(mut self, val: User) -> Self {
self.user = val;
self
}
pub fn score(mut self, val: u32) -> Self {
self.score = val;
self
}
}

View file

@ -38,7 +38,7 @@ pub struct InputMediaPhoto {
} }
impl InputMediaPhoto { impl InputMediaPhoto {
pub fn new(media: InputFile) -> Self { pub const fn new(media: InputFile) -> Self {
Self { Self {
media, media,
caption: None, caption: None,
@ -59,7 +59,7 @@ impl InputMediaPhoto {
self self
} }
pub fn parse_mode(mut self, val: ParseMode) -> Self { pub const fn parse_mode(mut self, val: ParseMode) -> Self {
self.parse_mode = Some(val); self.parse_mode = Some(val);
self self
} }
@ -106,7 +106,7 @@ pub struct InputMediaVideo {
} }
impl InputMediaVideo { impl InputMediaVideo {
pub fn new(media: InputFile) -> Self { pub const fn new(media: InputFile) -> Self {
Self { Self {
media, media,
thumb: None, thumb: None,
@ -137,27 +137,27 @@ impl InputMediaVideo {
self self
} }
pub fn parse_mode(mut self, val: ParseMode) -> Self { pub const fn parse_mode(mut self, val: ParseMode) -> Self {
self.parse_mode = Some(val); self.parse_mode = Some(val);
self self
} }
pub fn width(mut self, val: u16) -> Self { pub const fn width(mut self, val: u16) -> Self {
self.width = Some(val); self.width = Some(val);
self self
} }
pub fn height(mut self, val: u16) -> Self { pub const fn height(mut self, val: u16) -> Self {
self.height = Some(val); self.height = Some(val);
self self
} }
pub fn duration(mut self, val: u16) -> Self { pub const fn duration(mut self, val: u16) -> Self {
self.duration = Some(val); self.duration = Some(val);
self self
} }
pub fn supports_streaming(mut self, val: bool) -> Self { pub const fn supports_streaming(mut self, val: bool) -> Self {
self.supports_streaming = Some(val); self.supports_streaming = Some(val);
self self
} }
@ -202,7 +202,7 @@ pub struct InputMediaAnimation {
} }
impl InputMediaAnimation { impl InputMediaAnimation {
pub fn new(media: InputFile) -> Self { pub const fn new(media: InputFile) -> Self {
Self { Self {
media, media,
thumb: None, thumb: None,
@ -232,22 +232,22 @@ impl InputMediaAnimation {
self self
} }
pub fn parse_mode(mut self, val: ParseMode) -> Self { pub const fn parse_mode(mut self, val: ParseMode) -> Self {
self.parse_mode = Some(val); self.parse_mode = Some(val);
self self
} }
pub fn width(mut self, val: u16) -> Self { pub const fn width(mut self, val: u16) -> Self {
self.width = Some(val); self.width = Some(val);
self self
} }
pub fn height(mut self, val: u16) -> Self { pub const fn height(mut self, val: u16) -> Self {
self.height = Some(val); self.height = Some(val);
self self
} }
pub fn duration(mut self, val: u16) -> Self { pub const fn duration(mut self, val: u16) -> Self {
self.duration = Some(val); self.duration = Some(val);
self self
} }
@ -291,7 +291,7 @@ pub struct InputMediaAudio {
} }
impl InputMediaAudio { impl InputMediaAudio {
pub fn new(media: InputFile) -> Self { pub const fn new(media: InputFile) -> Self {
Self { Self {
media, media,
thumb: None, thumb: None,
@ -321,12 +321,12 @@ impl InputMediaAudio {
self self
} }
pub fn parse_mode(mut self, val: ParseMode) -> Self { pub const fn parse_mode(mut self, val: ParseMode) -> Self {
self.parse_mode = Some(val); self.parse_mode = Some(val);
self self
} }
pub fn duration(mut self, val: u16) -> Self { pub const fn duration(mut self, val: u16) -> Self {
self.duration = Some(val); self.duration = Some(val);
self self
} }
@ -377,7 +377,7 @@ pub struct InputMediaDocument {
} }
impl InputMediaDocument { impl InputMediaDocument {
pub fn new(media: InputFile) -> Self { pub const fn new(media: InputFile) -> Self {
Self { Self {
media, media,
thumb: None, thumb: None,
@ -386,6 +386,11 @@ impl InputMediaDocument {
} }
} }
pub fn media(mut self, val: InputFile) -> Self {
self.media = val;
self
}
pub fn thumb(mut self, val: InputFile) -> Self { pub fn thumb(mut self, val: InputFile) -> Self {
self.thumb = Some(val); self.thumb = Some(val);
self self
@ -399,7 +404,7 @@ impl InputMediaDocument {
self self
} }
pub fn parse_mode(mut self, val: ParseMode) -> Self { pub const fn parse_mode(mut self, val: ParseMode) -> Self {
self.parse_mode = Some(val); self.parse_mode = Some(val);
self self
} }

View file

@ -82,7 +82,7 @@ pub struct InputMessageContentLocation {
} }
impl InputMessageContentLocation { impl InputMessageContentLocation {
pub fn new(latitude: f64, longitude: f64) -> Self { pub const fn new(latitude: f64, longitude: f64) -> Self {
Self { Self {
latitude, latitude,
longitude, longitude,
@ -90,17 +90,17 @@ impl InputMessageContentLocation {
} }
} }
pub fn latitude(mut self, val: f64) -> Self { pub const fn latitude(mut self, val: f64) -> Self {
self.latitude = val; self.latitude = val;
self self
} }
pub fn longitude(mut self, val: f64) -> Self { pub const fn longitude(mut self, val: f64) -> Self {
self.longitude = val; self.longitude = val;
self self
} }
pub fn live_period(mut self, val: u32) -> Self { pub const fn live_period(mut self, val: u32) -> Self {
self.live_period = Some(val); self.live_period = Some(val);
self self
} }

View file

@ -27,64 +27,3 @@ pub struct Invoice {
/// [`currencies.json`]: https://core.telegram.org/bots/payments/currencies.json /// [`currencies.json`]: https://core.telegram.org/bots/payments/currencies.json
pub total_amount: i32, pub total_amount: i32,
} }
impl Invoice {
pub fn new<S1, S2, S3, S4>(
title: S1,
description: S2,
start_parameter: S3,
currency: S4,
total_amount: i32,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
S3: Into<String>,
S4: Into<String>,
{
Self {
title: title.into(),
description: description.into(),
start_parameter: start_parameter.into(),
currency: currency.into(),
total_amount,
}
}
pub fn title<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.title = val.into();
self
}
pub fn description<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.description = val.into();
self
}
pub fn start_parameter<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.start_parameter = val.into();
self
}
pub fn currency<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.currency = val.into();
self
}
pub fn total_amount(mut self, val: i32) -> Self {
self.total_amount = val;
self
}
}

View file

@ -37,9 +37,9 @@ impl KeyboardButton {
pub fn request<T>(mut self, val: T) -> Self pub fn request<T>(mut self, val: T) -> Self
where where
T: Into<Option<ButtonRequest>>, T: Into<ButtonRequest>,
{ {
self.request = val.into(); self.request = Some(val.into());
self self
} }
} }

View file

@ -9,22 +9,3 @@ pub struct Location {
/// Latitude as defined by sender. /// Latitude as defined by sender.
pub latitude: f64, pub latitude: f64,
} }
impl Location {
pub fn new(longitude: f64, latitude: f64) -> Self {
Self {
longitude,
latitude,
}
}
pub fn latitude(mut self, val: f64) -> Self {
self.latitude = val;
self
}
pub fn longitude(mut self, val: f64) -> Self {
self.longitude = val;
self
}
}

View file

@ -20,42 +20,3 @@ pub struct Me {
/// `true`, if the bot supports inline queries. /// `true`, if the bot supports inline queries.
pub supports_inline_queries: bool, pub supports_inline_queries: bool,
} }
impl Me {
pub fn new(
user: User,
can_join_groups: bool,
can_read_all_group_messages: bool,
supports_inline_queries: bool,
) -> Self {
Self {
user,
can_join_groups,
can_read_all_group_messages,
supports_inline_queries,
}
}
pub fn user(mut self, val: User) -> Self {
self.user = val;
self
}
#[warn(clippy::wrong_self_convention)]
pub fn can_join_groups<S>(mut self, val: bool) -> Self {
self.can_join_groups = val;
self
}
#[warn(clippy::wrong_self_convention)]
pub fn can_read_all_group_messages<S>(mut self, val: bool) -> Self {
self.can_read_all_group_messages = val;
self
}
#[warn(clippy::wrong_self_convention)]
pub fn supports_inline_queries<S>(mut self, val: bool) -> Self {
self.supports_inline_queries = val;
self
}
}

View file

@ -31,43 +31,6 @@ pub struct Message {
pub kind: MessageKind, pub kind: MessageKind,
} }
impl Message {
pub fn new(id: i32, date: i32, chat: Chat, kind: MessageKind) -> Self {
Self {
id,
date,
chat,
kind,
via_bot: None,
}
}
pub fn id(mut self, val: i32) -> Self {
self.id = val;
self
}
pub fn date(mut self, val: i32) -> Self {
self.date = val;
self
}
pub fn chat(mut self, val: Chat) -> Self {
self.chat = val;
self
}
pub fn kind(mut self, val: MessageKind) -> Self {
self.kind = val;
self
}
pub fn via_bot(mut self, val: User) -> Self {
self.via_bot = Some(val);
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)] #[serde(untagged)]
pub enum MessageKind { pub enum MessageKind {
@ -109,43 +72,6 @@ pub struct MessageCommon {
pub reply_markup: Option<InlineKeyboardMarkup>, pub reply_markup: Option<InlineKeyboardMarkup>,
} }
impl MessageCommon {
pub fn new(forward_kind: ForwardKind, media_kind: MediaKind) -> Self {
Self {
from: None,
forward_kind,
edit_date: None,
media_kind,
reply_markup: None,
}
}
pub fn from(mut self, val: User) -> Self {
self.from = Some(val);
self
}
pub fn forward_kind(mut self, val: ForwardKind) -> Self {
self.forward_kind = val;
self
}
pub fn edit_date(mut self, val: i32) -> Self {
self.edit_date = Some(val);
self
}
pub fn media_kind(mut self, val: MediaKind) -> Self {
self.media_kind = val;
self
}
pub fn reply_markup(mut self, val: InlineKeyboardMarkup) -> Self {
self.reply_markup = Some(val);
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageNewChatMembers { pub struct MessageNewChatMembers {
/// New members that were added to the group or supergroup and /// New members that were added to the group or supergroup and
@ -154,25 +80,6 @@ pub struct MessageNewChatMembers {
pub new_chat_members: Vec<User>, pub new_chat_members: Vec<User>,
} }
impl MessageNewChatMembers {
pub fn new<N>(new_chat_members: N) -> Self
where
N: Into<Vec<User>>,
{
Self {
new_chat_members: new_chat_members.into(),
}
}
pub fn new_chat_members<N>(mut self, val: N) -> Self
where
N: Into<Vec<User>>,
{
self.new_chat_members = val.into();
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageLeftChatMember { pub struct MessageLeftChatMember {
/// A member was removed from the group, information about them (this /// A member was removed from the group, information about them (this
@ -180,99 +87,30 @@ pub struct MessageLeftChatMember {
pub left_chat_member: User, pub left_chat_member: User,
} }
impl MessageLeftChatMember {
pub fn new<N>(left_chat_member: N) -> Self
where
N: Into<User>,
{
Self {
left_chat_member: left_chat_member.into(),
}
}
pub fn left_chat_member<N>(mut self, val: N) -> Self
where
N: Into<User>,
{
self.left_chat_member = val.into();
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageNewChatTitle { pub struct MessageNewChatTitle {
/// A chat title was changed to this value. /// A chat title was changed to this value.
pub new_chat_title: String, pub new_chat_title: String,
} }
impl MessageNewChatTitle {
pub fn new<N>(new_chat_title: N) -> Self
where
N: Into<String>,
{
Self {
new_chat_title: new_chat_title.into(),
}
}
pub fn new_chat_title<N>(mut self, val: N) -> Self
where
N: Into<String>,
{
self.new_chat_title = val.into();
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageNewChatPhoto { pub struct MessageNewChatPhoto {
/// A chat photo was change to this value. /// A chat photo was change to this value.
pub new_chat_photo: Vec<PhotoSize>, pub new_chat_photo: Vec<PhotoSize>,
} }
impl MessageNewChatPhoto {
pub fn new<N>(new_chat_photo: N) -> Self
where
N: Into<Vec<PhotoSize>>,
{
Self {
new_chat_photo: new_chat_photo.into(),
}
}
pub fn new_chat_photo<N>(mut self, val: N) -> Self
where
N: Into<Vec<PhotoSize>>,
{
self.new_chat_photo = val.into();
self
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct MessageDeleteChatPhoto { pub struct MessageDeleteChatPhoto {
/// Service message: the chat photo was deleted. /// Service message: the chat photo was deleted.
pub delete_chat_photo: True, pub delete_chat_photo: True,
} }
impl MessageDeleteChatPhoto {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct MessageGroupChatCreated { pub struct MessageGroupChatCreated {
/// Service message: the group has been created. /// Service message: the group has been created.
pub group_chat_created: True, pub group_chat_created: True,
} }
impl MessageGroupChatCreated {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct MessageSupergroupChatCreated { pub struct MessageSupergroupChatCreated {
/// Service message: the supergroup has been created. This field cant /// Service message: the supergroup has been created. This field cant
@ -283,12 +121,6 @@ pub struct MessageSupergroupChatCreated {
pub supergroup_chat_created: True, pub supergroup_chat_created: True,
} }
impl MessageSupergroupChatCreated {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct MessageChannelChatCreated { pub struct MessageChannelChatCreated {
/// Service message: the channel has been created. This field cant be /// Service message: the channel has been created. This field cant be
@ -299,12 +131,6 @@ pub struct MessageChannelChatCreated {
pub channel_chat_created: True, pub channel_chat_created: True,
} }
impl MessageChannelChatCreated {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageMigrate { pub struct MessageMigrate {
/// The group has been migrated to a supergroup with the specified /// The group has been migrated to a supergroup with the specified
@ -324,25 +150,6 @@ pub struct MessageMigrate {
pub migrate_from_chat_id: i64, pub migrate_from_chat_id: i64,
} }
impl MessageMigrate {
pub fn new(migrate_to_chat_id: i64, migrate_from_chat_id: i64) -> Self {
Self {
migrate_to_chat_id,
migrate_from_chat_id,
}
}
pub fn migrate_to_chat_id(mut self, val: i64) -> Self {
self.migrate_to_chat_id = val;
self
}
pub fn migrate_from_chat_id(mut self, val: i64) -> Self {
self.migrate_from_chat_id = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessagePinned { pub struct MessagePinned {
/// Specified message was pinned. Note that the Message object in this /// Specified message was pinned. Note that the Message object in this
@ -352,19 +159,6 @@ pub struct MessagePinned {
pub pinned: Box<Message>, pub pinned: Box<Message>,
} }
impl MessagePinned {
pub fn new(pinned: Message) -> Self {
Self {
pinned: Box::new(pinned),
}
}
pub fn pinned(mut self, val: Message) -> Self {
self.pinned = Box::new(val);
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageInvoice { pub struct MessageInvoice {
/// Message is an invoice for a [payment], information about the /// Message is an invoice for a [payment], information about the
@ -375,17 +169,6 @@ pub struct MessageInvoice {
pub invoice: Invoice, pub invoice: Invoice,
} }
impl MessageInvoice {
pub fn new(invoice: Invoice) -> Self {
Self { invoice }
}
pub fn invoice(mut self, val: Invoice) -> Self {
self.invoice = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageSuccessfulPayment { pub struct MessageSuccessfulPayment {
/// Message is a service message about a successful payment, /// Message is a service message about a successful payment,
@ -395,17 +178,6 @@ pub struct MessageSuccessfulPayment {
pub successful_payment: SuccessfulPayment, pub successful_payment: SuccessfulPayment,
} }
impl MessageSuccessfulPayment {
pub fn new(successful_payment: SuccessfulPayment) -> Self {
Self { successful_payment }
}
pub fn successful_payment(mut self, val: SuccessfulPayment) -> Self {
self.successful_payment = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageConnectedWebsite { pub struct MessageConnectedWebsite {
/// The domain name of the website on which the user has logged in. /// The domain name of the website on which the user has logged in.
@ -415,42 +187,12 @@ pub struct MessageConnectedWebsite {
pub connected_website: String, pub connected_website: String,
} }
impl MessageConnectedWebsite {
pub fn new<S>(connected_website: S) -> Self
where
S: Into<String>,
{
Self {
connected_website: connected_website.into(),
}
}
pub fn connected_website<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.connected_website = val.into();
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessagePassportData { pub struct MessagePassportData {
/// Telegram Passport data. /// Telegram Passport data.
pub passport_data: PassportData, pub passport_data: PassportData,
} }
impl MessagePassportData {
pub fn new(passport_data: PassportData) -> Self {
Self { passport_data }
}
pub fn passport_data(mut self, val: PassportData) -> Self {
self.passport_data = val;
self
}
}
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub enum ForwardedFrom { pub enum ForwardedFrom {
#[serde(rename = "forward_from")] #[serde(rename = "forward_from")]
@ -482,40 +224,6 @@ pub struct ForwardChannel {
pub signature: Option<String>, pub signature: Option<String>,
} }
impl ForwardChannel {
pub fn new(date: i32, chat: Chat, message_id: i32) -> Self {
Self {
date,
chat,
message_id,
signature: None,
}
}
pub fn date(mut self, val: i32) -> Self {
self.date = val;
self
}
pub fn chat(mut self, val: Chat) -> Self {
self.chat = val;
self
}
pub fn message_id(mut self, val: i32) -> Self {
self.message_id = val;
self
}
pub fn signature<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.signature = Some(val.into());
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ForwardNonChannel { pub struct ForwardNonChannel {
#[serde(rename = "forward_date")] #[serde(rename = "forward_date")]
@ -525,38 +233,11 @@ pub struct ForwardNonChannel {
pub from: ForwardedFrom, pub from: ForwardedFrom,
} }
impl ForwardNonChannel {
pub fn new(date: i32, from: ForwardedFrom) -> Self {
Self { date, from }
}
pub fn date(mut self, val: i32) -> Self {
self.date = val;
self
}
pub fn from(mut self, val: ForwardedFrom) -> Self {
self.from = val;
self
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ForwardOrigin { pub struct ForwardOrigin {
pub reply_to_message: Option<Box<Message>>, pub reply_to_message: Option<Box<Message>>,
} }
impl ForwardOrigin {
pub fn new() -> Self {
Self::default()
}
pub fn reply_to_message(mut self, val: Message) -> Self {
self.reply_to_message = Some(Box::new(val));
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)] #[serde(untagged)]
pub enum MediaKind { pub enum MediaKind {
@ -597,41 +278,6 @@ pub struct MediaAnimation {
pub caption_entities: Vec<MessageEntity>, pub caption_entities: Vec<MessageEntity>,
} }
impl MediaAnimation {
pub fn new<CE>(animation: Animation, caption_entities: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
Self {
animation,
document: (),
caption: None,
caption_entities: caption_entities.into(),
}
}
pub fn animation(mut self, val: Animation) -> Self {
self.animation = val;
self
}
pub fn caption<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.caption = Some(val.into());
self
}
pub fn caption_entities<CE>(mut self, val: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
self.caption_entities = val.into();
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaAudio { pub struct MediaAudio {
@ -647,57 +293,12 @@ pub struct MediaAudio {
pub caption_entities: Vec<MessageEntity>, pub caption_entities: Vec<MessageEntity>,
} }
impl MediaAudio {
pub fn new<CE>(audio: Audio, caption_entities: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
Self {
audio,
caption: None,
caption_entities: caption_entities.into(),
}
}
pub fn audio(mut self, val: Audio) -> Self {
self.audio = val;
self
}
pub fn caption<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.caption = Some(val.into());
self
}
pub fn caption_entities<CE>(mut self, val: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
self.caption_entities = val.into();
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaContact { pub struct MediaContact {
/// Message is a shared contact, information about the contact. /// Message is a shared contact, information about the contact.
contact: Contact, contact: Contact,
} }
impl MediaContact {
pub fn new(contact: Contact) -> Self {
Self { contact }
}
pub fn contact(mut self, val: Contact) -> Self {
self.contact = val;
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaDocument { pub struct MediaDocument {
@ -713,40 +314,6 @@ pub struct MediaDocument {
pub caption_entities: Vec<MessageEntity>, pub caption_entities: Vec<MessageEntity>,
} }
impl MediaDocument {
pub fn new<CE>(document: Document, caption_entities: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
Self {
document,
caption: None,
caption_entities: caption_entities.into(),
}
}
pub fn document(mut self, val: Document) -> Self {
self.document = val;
self
}
pub fn caption<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.caption = Some(val.into());
self
}
pub fn caption_entities<CE>(mut self, val: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
self.caption_entities = val.into();
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaGame { pub struct MediaGame {
/// Message is a game, information about the game. [More /// Message is a game, information about the game. [More
@ -756,34 +323,12 @@ pub struct MediaGame {
pub game: Game, pub game: Game,
} }
impl MediaGame {
pub fn new(game: Game) -> Self {
Self { game }
}
pub fn game(mut self, val: Game) -> Self {
self.game = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaLocation { pub struct MediaLocation {
/// Message is a shared location, information about the location. /// Message is a shared location, information about the location.
pub location: Location, pub location: Location,
} }
impl MediaLocation {
pub fn new(location: Location) -> Self {
Self { location }
}
pub fn location(mut self, val: Location) -> Self {
self.location = val;
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaPhoto { pub struct MediaPhoto {
@ -803,87 +348,18 @@ pub struct MediaPhoto {
pub media_group_id: Option<String>, pub media_group_id: Option<String>,
} }
impl MediaPhoto {
pub fn new<P, CE>(photo: P, caption_entities: CE) -> Self
where
P: Into<Vec<PhotoSize>>,
CE: Into<Vec<MessageEntity>>,
{
Self {
photo: photo.into(),
caption: None,
caption_entities: caption_entities.into(),
media_group_id: None,
}
}
pub fn photo<P>(mut self, val: P) -> Self
where
P: Into<Vec<PhotoSize>>,
{
self.photo = val.into();
self
}
pub fn caption<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.caption = Some(val.into());
self
}
pub fn caption_entities<CE>(mut self, val: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
self.caption_entities = val.into();
self
}
pub fn media_group_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.media_group_id = Some(val.into());
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaPoll { pub struct MediaPoll {
/// Message is a native poll, information about the poll. /// Message is a native poll, information about the poll.
pub poll: Poll, pub poll: Poll,
} }
impl MediaPoll {
pub fn new(poll: Poll) -> Self {
Self { poll }
}
pub fn poll(mut self, val: Poll) -> Self {
self.poll = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaSticker { pub struct MediaSticker {
/// Message is a sticker, information about the sticker. /// Message is a sticker, information about the sticker.
pub sticker: Sticker, pub sticker: Sticker,
} }
impl MediaSticker {
pub fn new(sticker: Sticker) -> Self {
Self { sticker }
}
pub fn poll(mut self, val: Sticker) -> Self {
self.sticker = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaText { pub struct MediaText {
/// For text messages, the actual UTF-8 text of the message, 0-4096 /// For text messages, the actual UTF-8 text of the message, 0-4096
@ -896,35 +372,6 @@ pub struct MediaText {
pub entities: Vec<MessageEntity>, pub entities: Vec<MessageEntity>,
} }
impl MediaText {
pub fn new<S, E>(text: S, entities: E) -> Self
where
S: Into<String>,
E: Into<Vec<MessageEntity>>,
{
Self {
text: text.into(),
entities: entities.into(),
}
}
pub fn text<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.text = val.into();
self
}
pub fn entities<CE>(mut self, val: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
self.entities = val.into();
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaVideo { pub struct MediaVideo {
@ -944,49 +391,6 @@ pub struct MediaVideo {
pub media_group_id: Option<String>, pub media_group_id: Option<String>,
} }
impl MediaVideo {
pub fn new<CE>(video: Video, caption_entities: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
Self {
video,
caption: None,
caption_entities: caption_entities.into(),
media_group_id: None,
}
}
pub fn video(mut self, val: Video) -> Self {
self.video = val;
self
}
pub fn caption<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.caption = Some(val.into());
self
}
pub fn caption_entities<CE>(mut self, val: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
self.caption_entities = val.into();
self
}
pub fn media_group_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.media_group_id = Some(val.into());
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaVideoNote { pub struct MediaVideoNote {
/// Message is a [video note], information about the video message. /// Message is a [video note], information about the video message.
@ -995,17 +399,6 @@ pub struct MediaVideoNote {
pub video_note: VideoNote, pub video_note: VideoNote,
} }
impl MediaVideoNote {
pub fn new(video_note: VideoNote) -> Self {
Self { video_note }
}
pub fn video_note(mut self, val: VideoNote) -> Self {
self.video_note = val;
self
}
}
#[serde_with_macros::skip_serializing_none] #[serde_with_macros::skip_serializing_none]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaVoice { pub struct MediaVoice {
@ -1021,57 +414,12 @@ pub struct MediaVoice {
pub caption_entities: Vec<MessageEntity>, pub caption_entities: Vec<MessageEntity>,
} }
impl MediaVoice {
pub fn new<CE>(voice: Voice, caption_entities: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
Self {
voice,
caption: None,
caption_entities: caption_entities.into(),
}
}
pub fn voice(mut self, val: Voice) -> Self {
self.voice = val;
self
}
pub fn caption<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.caption = Some(val.into());
self
}
pub fn caption_entities<CE>(mut self, val: CE) -> Self
where
CE: Into<Vec<MessageEntity>>,
{
self.caption_entities = val.into();
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MediaVenue { pub struct MediaVenue {
/// Message is a venue, information about the venue. /// Message is a venue, information about the venue.
pub venue: Venue, pub venue: Venue,
} }
impl MediaVenue {
pub fn new(venue: Venue) -> Self {
Self { venue }
}
pub fn venue(mut self, val: Venue) -> Self {
self.venue = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MessageDice { pub struct MessageDice {
/// Message is a dice with random value from 1 to 6. /// Message is a dice with random value from 1 to 6.

View file

@ -20,7 +20,7 @@ pub struct MessageEntity {
} }
impl MessageEntity { impl MessageEntity {
pub fn new(kind: MessageEntityKind, offset: usize, length: usize) -> Self { pub const fn new(kind: MessageEntityKind, offset: usize, length: usize) -> Self {
Self { Self {
kind, kind,
offset, offset,
@ -33,12 +33,12 @@ impl MessageEntity {
self self
} }
pub fn offset(mut self, val: usize) -> Self { pub const fn offset(mut self, val: usize) -> Self {
self.offset = val; self.offset = val;
self self
} }
pub fn length(mut self, val: usize) -> Self { pub const fn length(mut self, val: usize) -> Self {
self.length = val; self.length = val;
self self
} }

View file

@ -19,53 +19,3 @@ pub struct OrderInfo {
/// User's shipping address. /// User's shipping address.
pub shipping_address: ShippingAddress, pub shipping_address: ShippingAddress,
} }
impl OrderInfo {
pub fn new<S1, S2, S3>(
name: S1,
phone_number: S2,
email: S3,
shipping_address: ShippingAddress,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
S3: Into<String>,
{
Self {
name: name.into(),
phone_number: phone_number.into(),
email: email.into(),
shipping_address,
}
}
pub fn name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.name = val.into();
self
}
pub fn phone_number<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.phone_number = val.into();
self
}
pub fn email<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.email = val.into();
self
}
pub fn shipping_address(mut self, val: ShippingAddress) -> Self {
self.shipping_address = val;
self
}
}

View file

@ -15,28 +15,3 @@ pub struct PassportData {
/// Encrypted credentials required to decrypt the data. /// Encrypted credentials required to decrypt the data.
pub credentials: EncryptedCredentials, pub credentials: EncryptedCredentials,
} }
impl PassportData {
pub fn new<E>(data: E, credentials: EncryptedCredentials) -> Self
where
E: Into<Vec<EncryptedPassportElement>>,
{
Self {
data: data.into(),
credentials,
}
}
pub fn data<E>(mut self, val: E) -> Self
where
E: Into<Vec<EncryptedPassportElement>>,
{
self.data = val.into();
self
}
pub fn credentials(mut self, val: EncryptedCredentials) -> Self {
self.credentials = val;
self
}
}

View file

@ -22,44 +22,3 @@ pub struct PassportFile {
/// Unix time when the file was uploaded. /// Unix time when the file was uploaded.
pub file_date: u64, pub file_date: u64,
} }
impl PassportFile {
pub fn new<S1, S2>(file_id: S1, file_unique_id: S2, file_size: u64, file_date: u64) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
file_size,
file_date,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn file_size(mut self, val: u64) -> Self {
self.file_size = val;
self
}
pub fn file_date(mut self, val: u64) -> Self {
self.file_date = val;
self
}
}

View file

@ -25,53 +25,6 @@ pub struct PhotoSize {
pub file_size: Option<u32>, pub file_size: Option<u32>,
} }
impl PhotoSize {
pub fn new<S1, S2>(file_id: S1, file_unique_id: S2, width: i32, height: i32) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
width,
height,
file_size: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn width(mut self, val: i32) -> Self {
self.width = val;
self
}
pub fn height(mut self, val: i32) -> Self {
self.height = val;
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = Some(val);
self
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View file

@ -46,128 +46,11 @@ pub struct Poll {
pub explanation_entities: Option<Vec<MessageEntity>>, pub explanation_entities: Option<Vec<MessageEntity>>,
/// Amount of time in seconds the poll will be active after creation. /// Amount of time in seconds the poll will be active after creation.
open_period: Option<i32>, pub open_period: Option<i32>,
/// Point in time (Unix timestamp) when the poll will be automatically /// Point in time (Unix timestamp) when the poll will be automatically
/// closed. /// closed.
close_date: Option<i32>, pub close_date: Option<i32>,
}
impl Poll {
#[allow(clippy::too_many_arguments)]
pub fn new<S1, S2, O>(
id: S1,
question: S2,
options: O,
is_closed: bool,
total_voter_count: i32,
is_anonymous: bool,
poll_type: PollType,
allows_multiple_answers: bool,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
O: Into<Vec<PollOption>>,
{
Self {
id: id.into(),
question: question.into(),
options: options.into(),
is_closed,
total_voter_count,
is_anonymous,
poll_type,
allows_multiple_answers,
correct_option_id: None,
explanation: None,
explanation_entities: None,
open_period: None,
close_date: None,
}
}
pub fn id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.id = val.into();
self
}
pub fn question<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.question = val.into();
self
}
pub fn options<P>(mut self, val: P) -> Self
where
P: Into<Vec<PollOption>>,
{
self.options = val.into();
self
}
#[allow(clippy::wrong_self_convention)]
pub fn is_closed(mut self, val: bool) -> Self {
self.is_closed = val;
self
}
pub fn total_voter_count(mut self, val: i32) -> Self {
self.total_voter_count = val;
self
}
#[allow(clippy::wrong_self_convention)]
pub fn is_anonymous(mut self, val: bool) -> Self {
self.is_anonymous = val;
self
}
pub fn poll_type(mut self, val: PollType) -> Self {
self.poll_type = val;
self
}
pub fn allows_multiple_answers(mut self, val: bool) -> Self {
self.allows_multiple_answers = val;
self
}
pub fn correct_option_id(mut self, val: i32) -> Self {
self.correct_option_id = Some(val);
self
}
pub fn explanation<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.explanation = Some(val.into());
self
}
pub fn explanation_entities<S>(mut self, val: S) -> Self
where
S: Into<Vec<MessageEntity>>,
{
self.explanation_entities = Some(val.into());
self
}
pub fn open_period(mut self, val: i32) -> Self {
self.open_period = Some(val);
self
}
pub fn close_date(mut self, val: i32) -> Self {
self.close_date = Some(val);
self
}
} }
/// This object contains information about one answer option in a poll. /// This object contains information about one answer option in a poll.
@ -182,31 +65,6 @@ pub struct PollOption {
pub voter_count: i32, pub voter_count: i32,
} }
impl PollOption {
pub fn new<S>(text: S, voter_count: i32) -> Self
where
S: Into<String>,
{
Self {
text: text.into(),
voter_count,
}
}
pub fn text<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.text = val.into();
self
}
pub fn voter_count(mut self, val: i32) -> Self {
self.voter_count = val;
self
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View file

@ -14,38 +14,3 @@ pub struct PollAnswer {
/// May be empty if the user retracted their vote. /// May be empty if the user retracted their vote.
pub option_ids: Vec<i32>, pub option_ids: Vec<i32>,
} }
impl PollAnswer {
pub fn new<S, O>(poll_id: S, user: User, option_ids: O) -> Self
where
S: Into<String>,
O: Into<Vec<i32>>,
{
Self {
poll_id: poll_id.into(),
user,
option_ids: option_ids.into(),
}
}
pub fn poll_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.poll_id = val.into();
self
}
pub fn user(mut self, val: User) -> Self {
self.user = val;
self
}
pub fn option_ids<S>(mut self, val: S) -> Self
where
S: Into<Vec<i32>>,
{
self.option_ids = val.into();
self
}
}

View file

@ -37,71 +37,3 @@ pub struct PreCheckoutQuery {
/// Order info provided by the user. /// Order info provided by the user.
pub order_info: Option<OrderInfo>, pub order_info: Option<OrderInfo>,
} }
impl PreCheckoutQuery {
pub fn new<S1, S2>(
id: S1,
from: User,
currency: Currency,
total_amount: i32,
invoice_payload: S2,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
id: id.into(),
from,
currency,
total_amount,
invoice_payload: invoice_payload.into(),
shipping_option_id: None,
order_info: None,
}
}
pub fn id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.id = val.into();
self
}
pub fn from(mut self, val: User) -> Self {
self.from = val;
self
}
pub fn currency<S>(mut self, val: Currency) -> Self {
self.currency = val;
self
}
pub fn total_amount(mut self, val: i32) -> Self {
self.total_amount = val;
self
}
pub fn invoice_payload<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.invoice_payload = val.into();
self
}
pub fn shipping_option_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.shipping_option_id = Some(val.into());
self
}
pub fn order_info(mut self, val: OrderInfo) -> Self {
self.order_info = Some(val);
self
}
}

View file

@ -37,15 +37,15 @@ pub struct ReplyKeyboardRemove {
} }
impl ReplyKeyboardRemove { impl ReplyKeyboardRemove {
pub fn new() -> Self { pub const fn new() -> Self {
Self::default() Self {
remove_keyboard: True,
selective: None,
}
} }
pub fn selective<T>(mut self, val: T) -> Self pub const fn selective(mut self, val: bool) -> Self {
where self.selective = Some(val);
T: Into<bool>,
{
self.selective = Some(val.into());
self self
} }
} }

View file

@ -24,76 +24,3 @@ pub struct ShippingAddress {
/// Address post code. /// Address post code.
pub post_code: String, pub post_code: String,
} }
impl ShippingAddress {
pub fn new<S1, S2, S3, S4, S5>(
country_code: CountryCode,
state: S1,
city: S2,
street_line1: S3,
street_line2: S4,
post_code: S5,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
S3: Into<String>,
S4: Into<String>,
S5: Into<String>,
{
Self {
country_code,
state: state.into(),
city: city.into(),
street_line1: street_line1.into(),
street_line2: street_line2.into(),
post_code: post_code.into(),
}
}
pub fn country_code(mut self, val: CountryCode) -> Self {
self.country_code = val;
self
}
pub fn state<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.state = val.into();
self
}
pub fn city<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.city = val.into();
self
}
pub fn street_line1<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.street_line1 = val.into();
self
}
pub fn street_line2<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.street_line2 = val.into();
self
}
pub fn post_code<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.post_code = val.into();
self
}
}

View file

@ -19,49 +19,3 @@ pub struct ShippingQuery {
/// User specified shipping address. /// User specified shipping address.
pub shipping_address: ShippingAddress, pub shipping_address: ShippingAddress,
} }
impl ShippingQuery {
pub fn new<S1, S2>(
id: S1,
from: User,
invoice_payload: S2,
shipping_address: ShippingAddress,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
id: id.into(),
from,
invoice_payload: invoice_payload.into(),
shipping_address,
}
}
pub fn id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.id = val.into();
self
}
pub fn from<S>(mut self, val: User) -> Self {
self.from = val;
self
}
pub fn invoice_payload<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.invoice_payload = val.into();
self
}
pub fn shipping_address<S>(mut self, val: ShippingAddress) -> Self {
self.shipping_address = val;
self
}
}

View file

@ -42,93 +42,3 @@ pub struct Sticker {
/// File size. /// File size.
pub file_size: Option<u32>, pub file_size: Option<u32>,
} }
impl Sticker {
pub fn new<S1, S2>(
file_id: S1,
file_unique_id: S2,
width: u16,
height: u16,
is_animated: bool,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
width,
height,
is_animated,
thumb: None,
emoji: None,
set_name: None,
mask_position: None,
file_size: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn height(mut self, val: u16) -> Self {
self.height = val;
self
}
pub fn width(mut self, val: u16) -> Self {
self.width = val;
self
}
#[allow(clippy::wrong_self_convention)]
pub fn is_animated(mut self, val: bool) -> Self {
self.is_animated = val;
self
}
pub fn thumb(mut self, val: PhotoSize) -> Self {
self.thumb = Some(val);
self
}
pub fn emoji<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.emoji = Some(val.into());
self
}
pub fn set_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.set_name = Some(val.into());
self
}
pub fn mask_position(mut self, val: MaskPosition) -> Self {
self.mask_position = Some(val);
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = Some(val);
self
}
}

View file

@ -27,62 +27,3 @@ pub struct StickerSet {
/// Sticker set thumbnail in the .WEBP or .TGS format. /// Sticker set thumbnail in the .WEBP or .TGS format.
thumb: Option<PhotoSize>, thumb: Option<PhotoSize>,
} }
impl StickerSet {
pub fn new<S1, S2, St>(
name: S1,
title: S2,
is_animated: bool,
contains_masks: bool,
stickers: St,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
St: Into<Vec<Sticker>>,
{
Self {
name: name.into(),
title: title.into(),
is_animated,
contains_masks,
stickers: stickers.into(),
thumb: None,
}
}
pub fn name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.name = val.into();
self
}
pub fn title<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.title = val.into();
self
}
#[allow(clippy::wrong_self_convention)]
pub fn is_animated(mut self, val: bool) -> Self {
self.is_animated = val;
self
}
pub fn contains_masks(mut self, val: bool) -> Self {
self.contains_masks = val;
self
}
pub fn stickers<S>(mut self, val: S) -> Self
where
S: Into<Vec<Sticker>>,
{
self.stickers = val.into();
self
}
}

View file

@ -37,75 +37,3 @@ pub struct SuccessfulPayment {
/// Provider payment identifier. /// Provider payment identifier.
pub provider_payment_charge_id: String, pub provider_payment_charge_id: String,
} }
impl SuccessfulPayment {
pub fn new<S1, S2, S3>(
currency: Currency,
total_amount: i32,
invoice_payload: S1,
telegram_payment_charge_id: S2,
provider_payment_charge_id: S3,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
S3: Into<String>,
{
Self {
currency,
total_amount,
invoice_payload: invoice_payload.into(),
shipping_option_id: None,
order_info: None,
telegram_payment_charge_id: telegram_payment_charge_id.into(),
provider_payment_charge_id: provider_payment_charge_id.into(),
}
}
pub fn currency<S>(mut self, val: Currency) -> Self {
self.currency = val;
self
}
pub fn total_amount(mut self, val: i32) -> Self {
self.total_amount = val;
self
}
pub fn invoice_payload<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.invoice_payload = val.into();
self
}
pub fn shipping_option_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.shipping_option_id = Some(val.into());
self
}
pub fn order_info(mut self, val: OrderInfo) -> Self {
self.order_info = Some(val);
self
}
pub fn telegram_payment_charge_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.telegram_payment_charge_id = val.into();
self
}
pub fn provider_payment_charge_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.provider_payment_charge_id = val.into();
self
}
}

View file

@ -28,22 +28,6 @@ pub struct Update {
pub kind: UpdateKind, pub kind: UpdateKind,
} }
impl Update {
pub fn new(id: i32, kind: UpdateKind) -> Self {
Self { id, kind }
}
pub fn id<S>(mut self, val: i32) -> Self {
self.id = val;
self
}
pub fn kind<S>(mut self, val: UpdateKind) -> Self {
self.kind = val;
self
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")] #[serde(rename_all = "snake_case")]
pub enum UpdateKind { pub enum UpdateKind {

View file

@ -27,65 +27,6 @@ pub struct User {
pub language_code: Option<String>, pub language_code: Option<String>,
} }
impl User {
pub fn new<S>(id: i32, is_bot: bool, first_name: S) -> Self
where
S: Into<String>,
{
Self {
id,
is_bot,
first_name: first_name.into(),
last_name: None,
username: None,
language_code: None,
}
}
pub fn id<S>(mut self, val: i32) -> Self {
self.id = val;
self
}
#[allow(clippy::wrong_self_convention)]
pub fn is_bot<S>(mut self, val: bool) -> Self {
self.is_bot = val;
self
}
pub fn first_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.first_name = val.into();
self
}
pub fn last_name<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.last_name = Some(val.into());
self
}
pub fn username<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.username = Some(val.into());
self
}
pub fn language_code<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.language_code = Some(val.into());
self
}
}
impl User { impl User {
pub fn full_name(&self) -> String { pub fn full_name(&self) -> String {
match &self.last_name { match &self.last_name {

View file

@ -13,30 +13,3 @@ pub struct UserProfilePhotos {
/// Requested profile pictures (in up to 4 sizes each). /// Requested profile pictures (in up to 4 sizes each).
pub photos: Vec<Vec<PhotoSize>>, pub photos: Vec<Vec<PhotoSize>>,
} }
impl UserProfilePhotos {
pub fn new<P1, P2>(total_count: u32, photos: P1) -> Self
where
P1: Into<Vec<P2>>,
P2: Into<Vec<PhotoSize>>,
{
Self {
total_count,
photos: photos.into().into_iter().map(Into::into).collect(),
}
}
pub fn total_count(mut self, val: u32) -> Self {
self.total_count = val;
self
}
pub fn photos<P1, P2>(mut self, val: P1) -> Self
where
P1: Into<Vec<P2>>,
P2: Into<Vec<PhotoSize>>,
{
self.photos = val.into().into_iter().map(Into::into).collect();
self
}
}

View file

@ -23,51 +23,3 @@ pub struct Venue {
/// `food/icecream`.) /// `food/icecream`.)
pub foursquare_type: Option<String>, pub foursquare_type: Option<String>,
} }
impl Venue {
pub fn new<S1, S2>(location: Location, title: S1, address: S2) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
location,
title: title.into(),
address: address.into(),
foursquare_id: None,
foursquare_type: None,
}
}
pub fn title<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.title = val.into();
self
}
pub fn address<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.address = val.into();
self
}
pub fn foursquare_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.foursquare_id = Some(val.into());
self
}
pub fn foursquare_type<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.foursquare_type = Some(val.into());
self
}
}

View file

@ -36,74 +36,3 @@ pub struct Video {
/// File size. /// File size.
pub file_size: Option<u32>, pub file_size: Option<u32>,
} }
impl Video {
pub fn new<S1, S2>(
file_id: S1,
file_unique_id: S2,
width: u32,
height: u32,
duration: u32,
) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
width,
height,
duration,
thumb: None,
mime_type: None,
file_size: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn width(mut self, val: u32) -> Self {
self.width = val;
self
}
pub fn height(mut self, val: u32) -> Self {
self.height = val;
self
}
pub fn duration(mut self, val: u32) -> Self {
self.duration = val;
self
}
pub fn thumb(mut self, val: PhotoSize) -> Self {
self.thumb = Some(val);
self
}
pub fn mime_type(mut self, val: Mime) -> Self {
self.mime_type = Some(val);
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = Some(val);
self
}
}

View file

@ -33,56 +33,3 @@ pub struct VideoNote {
/// File size. /// File size.
pub file_size: Option<u32>, pub file_size: Option<u32>,
} }
impl VideoNote {
pub fn new<S1, S2>(file_id: S1, file_unique_id: S2, length: u32, duration: u32) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
length,
duration,
thumb: None,
file_size: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn length(mut self, val: u32) -> Self {
self.length = val;
self
}
pub fn duration(mut self, val: u32) -> Self {
self.duration = val;
self
}
pub fn thumb(mut self, val: PhotoSize) -> Self {
self.thumb = Some(val);
self
}
pub fn file_size(mut self, val: u32) -> Self {
self.file_size = Some(val);
self
}
}

View file

@ -25,50 +25,3 @@ pub struct Voice {
/// File size. /// File size.
pub file_size: Option<u64>, pub file_size: Option<u64>,
} }
impl Voice {
pub fn new<S1, S2>(file_id: S1, file_unique_id: S2, duration: u32) -> Self
where
S1: Into<String>,
S2: Into<String>,
{
Self {
file_id: file_id.into(),
file_unique_id: file_unique_id.into(),
duration,
mime_type: None,
file_size: None,
}
}
pub fn file_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_id = val.into();
self
}
pub fn file_unique_id<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.file_unique_id = val.into();
self
}
pub fn duration(mut self, val: u32) -> Self {
self.duration = val;
self
}
pub fn mime_type(mut self, val: Mime) -> Self {
self.mime_type = Some(val);
self
}
pub fn file_size(mut self, val: u64) -> Self {
self.file_size = Some(val);
self
}
}

View file

@ -32,66 +32,3 @@ pub struct WebhookInfo {
/// types. /// types.
pub allowed_updates: Option<Vec<String>>, pub allowed_updates: Option<Vec<String>>,
} }
impl WebhookInfo {
pub fn new<S>(url: S, has_custom_certificate: bool, pending_update_count: u32) -> Self
where
S: Into<String>,
{
Self {
url: url.into(),
has_custom_certificate,
pending_update_count,
last_error_date: None,
last_error_message: None,
max_connections: None,
allowed_updates: None,
}
}
pub fn url<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.url = val.into();
self
}
pub fn has_custom_certificate(mut self, val: bool) -> Self {
self.has_custom_certificate = val;
self
}
pub fn pending_update_count(mut self, val: u32) -> Self {
self.pending_update_count = val;
self
}
pub fn last_error_date(mut self, val: u64) -> Self {
self.last_error_date = Some(val);
self
}
pub fn last_error_message<S>(mut self, val: S) -> Self
where
S: Into<String>,
{
self.last_error_message = Some(val.into());
self
}
pub fn max_connections(mut self, val: u32) -> Self {
self.max_connections = Some(val);
self
}
pub fn allowed_updates<A, S>(mut self, val: A) -> Self
where
A: Into<Vec<S>>,
S: Into<String>,
{
self.allowed_updates = Some(val.into().into_iter().map(Into::into).collect());
self
}
}