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