1use {
2 crate::{types::*, IsDefault},
3 shrimple_telegram_proc_macro::telegram_request,
4 std::borrow::Cow,
5};
6
7#[telegram_request(response_type = True)]
8pub struct AnswerCallbackQuery<'src> {
9 #[telegram_request(via_into)]
10 pub callback_query_id: Cow<'src, str>,
11 #[telegram_request(optional, via_into)]
12 pub text: Cow<'src, str>,
13 #[telegram_request(optional, via_into)]
14 pub show_alert: bool,
15}
16
17#[telegram_request(response_type = True)]
18pub struct DeleteMessage {
19 pub chat_id: ChatId,
20 pub message_id: MessageId,
21}
22
23#[telegram_request(response_type = True)]
24pub struct DeleteWebhook;
25
26#[telegram_request(response_type = Message)]
27pub struct EditMessageReplyMarkup<'src> {
28 pub chat_id: ChatId,
29 pub message_id: MessageId,
30 #[telegram_request(optional, via_into)]
31 pub reply_markup: Option<InlineKeyboardMarkup<'src>>,
32}
33
34#[telegram_request(response_type = Message)]
35pub struct EditMessageText<'src> {
36 pub chat_id: ChatId,
37 pub message_id: MessageId,
38 #[telegram_request(via_into)]
39 pub text: Cow<'src, str>,
40 #[telegram_request(optional, via_into)]
41 pub parse_mode: Option<ParseMode>,
42 #[telegram_request(optional, via_into)]
43 pub reply_markup: Option<InlineKeyboardMarkup<'src>>,
44}
45
46#[telegram_request(response_type = Message)]
47pub struct ForwardMessage {
48 pub chat_id: ChatId,
49 pub from_chat_id: ChatId,
50 pub message_id: MessageId,
51}
52
53#[telegram_request(response_type = User)]
54pub struct GetMe;
55
56#[telegram_request(response_type = Vec<Update>)]
57pub struct GetUpdates<'src> {
58 #[telegram_request(optional, via_into)]
59 pub offset: Option<u32>,
60 #[telegram_request(optional, via_into)]
61 pub limit: Option<u8>,
62 #[telegram_request(optional, via_into)]
63 pub timeout: Option<u32>,
64 #[telegram_request(optional, via_into)]
65 pub allowed_updates: Cow<'src, [AllowedUpdate]>,
66}
67
68#[telegram_request(response_type = Message)]
69pub struct SendAudio<'src> {
70 pub chat_id: ChatId,
71 pub audio: Cow<'src, str>,
72 #[telegram_request(optional, via_into)]
73 pub caption: Cow<'src, str>,
74 #[telegram_request(optional, via_into)]
75 pub reply_to_message_id: Option<MessageId>,
76}
77
78#[telegram_request(response_type = Message)]
83pub struct SendDocument<'src> {
84 pub chat_id: ChatId,
85 #[telegram_request(payload)]
86 pub document: InputFile<'src>,
87 #[telegram_request(optional, via_into)]
88 pub caption: Cow<'src, str>,
89 #[telegram_request(optional, via_into)]
90 pub parse_mode: Option<ParseMode>,
91 #[telegram_request(optional, via_into)]
92 pub reply_to_message_id: Option<MessageId>,
93 #[telegram_request(optional, via_into)]
94 pub reply_markup: ReplyMarkup<'src>,
95}
96
97#[telegram_request(response_type = Message)]
100pub struct SendLocation<'src> {
101 pub chat_id: ChatId,
102 #[serde(flatten)]
103 pub location: Location,
104 #[telegram_request(optional, via_into)]
105 pub reply_to_message_id: Option<MessageId>,
106 #[telegram_request(optional, via_into)]
107 pub disable_notification: Option<bool>,
108 #[telegram_request(optional, via_into)]
109 pub protect_content: Option<bool>,
110 #[telegram_request(optional, via_into)]
111 pub allow_paid_broadcast: Option<bool>,
112 #[telegram_request(optional, via_into)]
113 pub message_effect_id: Cow<'src, str>,
114 #[telegram_request(optional, via_into)]
115 pub reply_markup: ReplyMarkup<'src>,
116}
117
118#[telegram_request(response_type = Message)]
119pub struct SendMessage<'src> {
120 pub chat_id: ChatId,
121 #[telegram_request(via_into)]
122 pub text: Cow<'src, str>,
123 #[telegram_request(optional)]
124 pub business_connection_id: Cow<'src, str>,
125 #[telegram_request(optional, via_into)]
126 pub parse_mode: Option<ParseMode>,
127 #[telegram_request(optional)]
128 pub disable_web_page_preview: bool,
129 #[telegram_request(optional, via_into)]
130 pub reply_to_message_id: Option<MessageId>,
131 #[telegram_request(optional, via_into)]
132 pub reply_markup: ReplyMarkup<'src>,
133}
134
135#[telegram_request(response_type = Message)]
136pub struct SendVideo<'src> {
137 pub chat_id: ChatId,
138 #[telegram_request(via_into)]
139 pub video: Cow<'src, str>,
140 #[telegram_request(optional, via_into)]
141 pub caption: Cow<'src, str>,
142 #[telegram_request(optional, via_into)]
143 pub reply_to_message_id: Option<MessageId>,
144}
145
146#[telegram_request(response_type = True)]
147pub struct SetMyCommands<'src> {
148 #[telegram_request(via_into)]
149 pub commands: Cow<'src, [BotCommand<'src>]>,
150 #[telegram_request(optional, via_into)]
151 pub language_code: Cow<'src, str>,
152}
153
154#[telegram_request(response_type = True)]
155pub struct SetWebhook<'src> {
156 #[telegram_request(via_into)]
157 pub url: Cow<'src, str>,
158 #[telegram_request(optional)]
159 pub drop_pending_updates: bool,
160 #[telegram_request(optional, via_into)]
161 pub secret_token: Cow<'src, str>,
162}