revolt_api/models/
embed.rs

1/*
2 * Revolt API
3 *
4 * Open source user-first chat platform.
5 *
6 * The version of the OpenAPI document: 0.6.5
7 * Contact: contact@revolt.chat
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// Embed : Embed
12
13
14
15#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
16pub struct Embed {
17    #[serde(rename = "type")]
18    pub r#type: RHashType,
19    /// URL for title
20    #[serde(rename = "url", deserialize_with = "Option::deserialize")]
21    pub url: Option<String>,
22    /// Original direct URL
23    #[serde(rename = "original_url", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
24    pub original_url: Option<Option<String>>,
25    #[serde(rename = "special", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
26    pub special: Option<Option<Box<crate::models::EmbedOneOfSpecial>>>,
27    /// Title of text embed
28    #[serde(rename = "title", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
29    pub title: Option<Option<String>>,
30    /// Description of text embed
31    #[serde(rename = "description", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
32    pub description: Option<Option<String>>,
33    #[serde(rename = "image", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
34    pub image: Option<Option<Box<crate::models::EmbedOneOfImage>>>,
35    #[serde(rename = "video", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
36    pub video: Option<Option<Box<crate::models::EmbedOneOfVideo>>>,
37    /// Site name
38    #[serde(rename = "site_name", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
39    pub site_name: Option<Option<String>>,
40    /// URL to icon
41    #[serde(rename = "icon_url", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
42    pub icon_url: Option<Option<String>>,
43    /// CSS Colour
44    #[serde(rename = "colour", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
45    pub colour: Option<Option<String>>,
46    /// Width of the video
47    #[serde(rename = "width")]
48    pub width: i32,
49    /// Height of the video
50    #[serde(rename = "height")]
51    pub height: i32,
52    #[serde(rename = "size")]
53    pub size: crate::models::ImageSize,
54    #[serde(rename = "media", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
55    pub media: Option<Option<Box<crate::models::EmbedOneOf3Media>>>,
56}
57
58impl Embed {
59    /// Embed
60    pub fn new(r#type: RHashType, url: Option<String>, width: i32, height: i32, size: crate::models::ImageSize) -> Embed {
61        Embed {
62            r#type,
63            url,
64            original_url: None,
65            special: None,
66            title: None,
67            description: None,
68            image: None,
69            video: None,
70            site_name: None,
71            icon_url: None,
72            colour: None,
73            width,
74            height,
75            size,
76            media: None,
77        }
78    }
79}
80
81/// 
82#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
83pub enum RHashType {
84    #[serde(rename = "None")]
85    None,
86}
87
88impl Default for RHashType {
89    fn default() -> RHashType {
90        Self::None
91    }
92}
93