rs_plugin_url_interfaces/
lib.rs

1use 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}