// WARNING: THIS CODE IS AUTOGENERATED.
// DO NOT EDIT!!!
use crate::types::User;
use serde::{Deserialize, Serialize};
/// This object represents one special entity in a text message. For example, hashtags, usernames, URLs, etc.
/// <https://core.telegram.org/bots/api#messageentity>
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MessageEntity {
/// Type of the entity. Currently, can be "mention" (@username), "hashtag" (#hashtag), "cashtag" ($USD), "bot_command" (/start@jobs_bot), "url" (https://telegram.org), "email" (do-not-reply@telegram.org), "phone_number" (+1-212-555-0123), "bold" (bold text), "italic" (italic text), "underline" (underlined text), "strikethrough" (strikethrough text), "spoiler" (spoiler message), "blockquote" (block quotation), "expandable_blockquote" (collapsed-by-default block quotation), "code" (monowidth string), "pre" (monowidth block), "text_link" (for clickable text URLs), "text_mention" (for users without usernames), "custom_emoji" (for inline custom emoji stickers)
pub r#type: String,
/// Offset in UTF-16 code units to the start of the entity
pub offset: i64,
/// Length of the entity in UTF-16 code units
pub length: i64,
/// Optional. For "text_link" only, URL that will be opened after user taps on the text
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
/// Optional. For "text_mention" only, the mentioned user
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<User>,
/// Optional. For "pre" only, the programming language of the entity text
#[serde(skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
/// Optional. For "custom_emoji" only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_emoji_id: Option<String>,
}