rs_plugin_url_interfaces/
lib.rs1use serde::{Deserialize, Serialize};
2use strum_macros::EnumString;
3
4#[cfg(feature = "rusqlite")]
5pub mod rusqlite;
6
7#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
8#[serde(rename_all = "snake_case")]
9pub struct RsLink {
10 pub platform: String,
11 #[serde(rename = "type")]
12 pub kind: Option<RsLinkType>,
13 pub id: String,
14
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub file: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub user: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub plugin: Option<String>,
21}
22
23#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, strum_macros::Display,EnumString, Default)]
24#[serde(rename_all = "camelCase")]
25#[strum(serialize_all = "camelCase")]
26pub enum RsLinkType {
27 Post,
28 Profile,
29 Video,
30 Photo,
31 File,
32 #[default]
33 Other,
34}