tba_openapi_rust/models/
media.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
16pub struct Media {
17 #[serde(rename = "type")]
19 pub r#type: RHashType,
20 #[serde(rename = "foreign_key")]
22 pub foreign_key: String,
23 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
25 pub details: Option<serde_json::Value>,
26 #[serde(rename = "preferred", skip_serializing_if = "Option::is_none")]
28 pub preferred: Option<bool>,
29 #[serde(rename = "direct_url", skip_serializing_if = "Option::is_none")]
31 pub direct_url: Option<String>,
32 #[serde(rename = "view_url", skip_serializing_if = "Option::is_none")]
34 pub view_url: Option<String>,
35}
36
37impl Media {
38 pub fn new(r#type: RHashType, foreign_key: String) -> Media {
40 Media {
41 r#type,
42 foreign_key,
43 details: None,
44 preferred: None,
45 direct_url: None,
46 view_url: None,
47 }
48 }
49}
50
51#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
53pub enum RHashType {
54 #[serde(rename = "youtube")]
55 Youtube,
56 #[serde(rename = "cdphotothread")]
57 Cdphotothread,
58 #[serde(rename = "imgur")]
59 Imgur,
60 #[serde(rename = "facebook-profile")]
61 FacebookProfile,
62 #[serde(rename = "youtube-channel")]
63 YoutubeChannel,
64 #[serde(rename = "twitter-profile")]
65 TwitterProfile,
66 #[serde(rename = "github-profile")]
67 GithubProfile,
68 #[serde(rename = "instagram-profile")]
69 InstagramProfile,
70 #[serde(rename = "periscope-profile")]
71 PeriscopeProfile,
72 #[serde(rename = "grabcad")]
73 Grabcad,
74 #[serde(rename = "instagram-image")]
75 InstagramImage,
76 #[serde(rename = "external-link")]
77 ExternalLink,
78 #[serde(rename = "avatar")]
79 Avatar,
80}
81
82impl Default for RHashType {
83 fn default() -> RHashType {
84 Self::Youtube
85 }
86}
87