conogram/entities/
external_reply_info.rs1use serde::{Deserialize, Serialize};
2
3use crate::{
4 entities::{
5 animation::Animation, audio::Audio, chat::Chat, contact::Contact, dice::Dice,
6 document::Document, game::Game, giveaway::Giveaway, giveaway_winners::GiveawayWinners,
7 invoice::Invoice, link_preview_options::LinkPreviewOptions, location::Location,
8 message_origin::MessageOrigin, paid_media_info::PaidMediaInfo, photo_size::PhotoSize,
9 poll::Poll, sticker::Sticker, story::Story, venue::Venue, video::Video,
10 video_note::VideoNote, voice::Voice,
11 },
12 utils::deserialize_utils::is_false,
13};
14
15#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
19pub struct ExternalReplyInfo {
20 pub origin: MessageOrigin,
22
23 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub chat: Option<Box<Chat>>,
26
27 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub message_id: Option<i64>,
30
31 #[serde(default, skip_serializing_if = "Option::is_none")]
33 pub link_preview_options: Option<LinkPreviewOptions>,
34
35 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub animation: Option<Animation>,
38
39 #[serde(default, skip_serializing_if = "Option::is_none")]
41 pub audio: Option<Audio>,
42
43 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub document: Option<Document>,
46
47 #[serde(default, skip_serializing_if = "Option::is_none")]
49 pub paid_media: Option<PaidMediaInfo>,
50
51 #[serde(default, skip_serializing_if = "Vec::is_empty")]
53 pub photo: Vec<PhotoSize>,
54
55 #[serde(default, skip_serializing_if = "Option::is_none")]
57 pub sticker: Option<Sticker>,
58
59 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub story: Option<Story>,
62
63 #[serde(default, skip_serializing_if = "Option::is_none")]
65 pub video: Option<Video>,
66
67 #[serde(default, skip_serializing_if = "Option::is_none")]
69 pub video_note: Option<VideoNote>,
70
71 #[serde(default, skip_serializing_if = "Option::is_none")]
73 pub voice: Option<Voice>,
74
75 #[serde(default, skip_serializing_if = "is_false")]
77 pub has_media_spoiler: bool,
78
79 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub contact: Option<Contact>,
82
83 #[serde(default, skip_serializing_if = "Option::is_none")]
85 pub dice: Option<Dice>,
86
87 #[serde(default, skip_serializing_if = "Option::is_none")]
89 pub game: Option<Game>,
90
91 #[serde(default, skip_serializing_if = "Option::is_none")]
93 pub giveaway: Option<Giveaway>,
94
95 #[serde(default, skip_serializing_if = "Option::is_none")]
97 pub giveaway_winners: Option<GiveawayWinners>,
98
99 #[serde(default, skip_serializing_if = "Option::is_none")]
101 pub invoice: Option<Invoice>,
102
103 #[serde(default, skip_serializing_if = "Option::is_none")]
105 pub location: Option<Location>,
106
107 #[serde(default, skip_serializing_if = "Option::is_none")]
109 pub poll: Option<Poll>,
110
111 #[serde(default, skip_serializing_if = "Option::is_none")]
113 pub venue: Option<Venue>,
114}
115
116