telegram_bot_async_raw/requests/
get_updates.rs1use crate::{requests::*, types::*};
2
3#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize, Default)]
5#[must_use = "requests do nothing unless sent"]
6pub struct GetUpdates {
7 #[serde(skip_serializing_if = "Option::is_none")]
8 offset: Option<Integer>,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 limit: Option<Integer>, #[serde(skip_serializing_if = "Option::is_none")]
12 timeout: Option<Integer>, allowed_updates: Vec<AllowedUpdate>, }
15
16impl Request for GetUpdates {
17 type Type = JsonRequestType<Self>;
18 type Response = JsonIdResponse<Vec<Update>>;
19
20 fn serialize(&self) -> Result<HttpRequest, Error> {
21 Self::Type::serialize(RequestUrl::method("getUpdates"), self)
22 }
23}
24
25impl GetUpdates {
26 pub fn new() -> Self {
27 Default::default()
28 }
29
30 pub fn offset(mut self, offset: Integer) -> Self {
31 self.offset = Some(offset);
32 self
33 }
34
35 pub fn limit(mut self, limit: Integer) -> Self {
36 self.limit = Some(limit);
37 self
38 }
39
40 pub fn timeout(mut self, timeout: Integer) -> Self {
41 self.timeout = Some(timeout);
42 self
43 }
44
45 pub fn allowed_updates(mut self, updates: &[AllowedUpdate]) -> Self {
46 self.allowed_updates = updates.to_vec();
47 self
48 }
49}
50
51#[derive(Debug, Clone, PartialEq, PartialOrd, Deserialize, Serialize)]
52pub enum AllowedUpdate {
53 #[serde(rename = "message")]
54 Message,
55 #[serde(rename = "edited_message")]
56 EditedMessage,
57 #[serde(rename = "channel_post")]
58 ChannelPost,
59 #[serde(rename = "edited_channel_post")]
60 EditedChannelPost,
61 #[serde(rename = "inline_query")]
62 InlineQuery,
63 #[serde(rename = "chosen_inline_query")]
64 ChosenInlineResult,
65 #[serde(rename = "callback_query")]
66 CallbackQuery,
67 #[serde(rename = "shipping_query")]
68 ShippingQuery,
69 #[serde(rename = "pre_checkout_query")]
70 PreCheckoutQuery,
71}