telegram_bot_raw/requests/
delete_message.rs1use crate::requests::*;
2use crate::types::*;
3
4#[derive(Debug, Clone, PartialEq, PartialOrd, Serialize)]
13#[must_use = "requests do nothing unless sent"]
14pub struct DeleteMessage {
15 chat_id: ChatRef,
16 message_id: MessageId,
17}
18
19impl Request for DeleteMessage {
20 type Type = JsonRequestType<Self>;
21 type Response = JsonTrueToUnitResponse;
22
23 fn serialize(&self) -> Result<HttpRequest, Error> {
24 Self::Type::serialize(RequestUrl::method("deleteMessage"), self)
25 }
26}
27
28impl DeleteMessage {
29 pub fn new<C, M>(chat: C, message_id: M) -> Self
30 where
31 C: ToChatRef,
32 M: ToMessageId,
33 {
34 DeleteMessage {
35 chat_id: chat.to_chat_ref(),
36 message_id: message_id.to_message_id(),
37 }
38 }
39}
40
41pub trait CanDeleteMessage {
43 fn delete(&self) -> DeleteMessage;
44}
45
46impl<M> CanDeleteMessage for M
47where
48 M: ToMessageId + ToSourceChat,
49{
50 fn delete(&self) -> DeleteMessage {
51 DeleteMessage::new(self.to_source_chat(), self.to_message_id())
52 }
53}