use serde::Serialize;
use crate::{
entities::{
inline_keyboard_markup::InlineKeyboardMarkup, input_message_content::InputMessageContent,
},
utils::deserialize_utils::is_false,
};
#[derive(Debug, Clone, Default, PartialEq, Serialize)]
pub struct InlineQueryResultArticle {
pub id: String,
pub title: String,
pub input_message_content: InputMessageContent,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<InlineKeyboardMarkup>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "is_false")]
pub hide_url: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumbnail_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumbnail_width: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumbnail_height: Option<i64>,
}
use super::input_text_message_content::InputTextMessageContent;
impl InlineQueryResultArticle {
pub fn new_simple_text(
id: impl Into<String>,
title: impl Into<String>,
text: impl Into<String>,
) -> Self {
Self {
id: id.into(),
title: title.into(),
input_message_content: InputTextMessageContent {
message_text: text.into(),
..Default::default()
}
.into(),
..Default::default()
}
}
}