Skip to main content

tbot/methods/
delete_sticker_from_set.rs

1use super::call_method;
2use crate::{connectors::Client, errors, token};
3use serde::Serialize;
4
5/// Deletes a sticker from a sticker set.
6///
7/// Reflects the [`deleteStickerFromSet`][docs] method
8///
9/// [docs]: https://core.telegram.org/bots/api#deletestickerfromset
10#[derive(Serialize, Debug, Clone)]
11#[must_use = "methods do nothing unless turned into a future"]
12pub struct DeleteStickerFromSet<'a> {
13    #[serde(skip)]
14    client: &'a Client,
15    #[serde(skip)]
16    token: token::Ref<'a>,
17    sticker: &'a str,
18}
19
20impl<'a> DeleteStickerFromSet<'a> {
21    pub(crate) const fn new(
22        client: &'a Client,
23        token: token::Ref<'a>,
24        sticker: &'a str,
25    ) -> Self {
26        Self {
27            client,
28            token,
29            sticker,
30        }
31    }
32}
33
34impl DeleteStickerFromSet<'_> {
35    /// Calls the method.
36    pub async fn call(self) -> Result<(), errors::MethodCall> {
37        call_method::<bool>(
38            self.client,
39            self.token,
40            "deleteStickerFromSet",
41            None,
42            serde_json::to_vec(&self).unwrap(),
43        )
44        .await?;
45
46        Ok(())
47    }
48}