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