summaryrefslogtreecommitdiff
path: root/src/output/share.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-01-09 23:19:55 +0800
committer魏曹先生 <1992414357@qq.com>2026-01-09 23:19:55 +0800
commit2f018e89c8584bc2bbca91054d0d5e96ed57e42d (patch)
tree4cbacfab1a4d7a5db5ae1e87ef7719bc3f9e5737 /src/output/share.rs
parentab2c87b785036a872e17eac771c65a4af88790e5 (diff)
Add JSON output support for share list and see commands
Diffstat (limited to 'src/output/share.rs')
-rw-r--r--src/output/share.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/output/share.rs b/src/output/share.rs
new file mode 100644
index 0000000..6fbfc3f
--- /dev/null
+++ b/src/output/share.rs
@@ -0,0 +1,32 @@
+use std::collections::HashMap;
+
+use just_enough_vcs::vcs::data::{
+ member::MemberId,
+ sheet::{SheetMappingMetadata, SheetPathBuf},
+ vault::sheet_share::SheetShareId,
+};
+use serde::{Deserialize, Serialize};
+
+#[derive(Debug, Default, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct ShareListResult {
+ pub share_list: Vec<ShareItem>,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct ShareItem {
+ pub share_id: SheetShareId,
+ pub sharer: MemberId,
+ pub description: String,
+ pub file_count: usize,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+#[serde(rename_all = "PascalCase")]
+pub struct SeeShareResult {
+ pub share_id: SheetShareId,
+ pub sharer: MemberId,
+ pub description: String,
+ pub mappings: HashMap<SheetPathBuf, SheetMappingMetadata>,
+}