tauri_plugin_sharekit/
models.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
4#[serde(rename_all = "lowercase")]
5pub enum RectEdge {
6 Top,
7 Bottom,
8 Left,
9 Right,
10}
11
12#[derive(Debug, Serialize, Deserialize)]
13#[serde(rename_all = "camelCase")]
14pub struct SharePosition {
15 pub x: f64,
16 pub y: f64,
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub preferred_edge: Option<RectEdge>,
20}
21
22#[derive(Debug, Default, Serialize, Deserialize)]
23#[serde(rename_all = "camelCase")]
24pub struct ShareTextOptions {
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub mime_type: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub position: Option<SharePosition>,
30}
31
32#[derive(Serialize)]
33pub struct ShareTextPayload {
34 pub text: String,
35 #[serde(flatten)]
36 pub options: ShareTextOptions,
37}
38
39#[derive(Debug, Default, Serialize, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct ShareFileOptions {
42 #[serde(skip_serializing_if = "Option::is_none")]
43 pub mime_type: Option<String>,
44 #[serde(skip_serializing_if = "Option::is_none")]
45 pub title: Option<String>,
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub position: Option<SharePosition>,
49}
50
51#[derive(Serialize)]
52pub struct ShareFilePayload {
53 pub url: String,
54 #[serde(flatten)]
55 pub options: ShareFileOptions,
56}