summaryrefslogtreecommitdiff
path: root/src/outputs
diff options
context:
space:
mode:
Diffstat (limited to 'src/outputs')
-rw-r--r--src/outputs/status.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/outputs/status.rs b/src/outputs/status.rs
new file mode 100644
index 0000000..f9ce875
--- /dev/null
+++ b/src/outputs/status.rs
@@ -0,0 +1,45 @@
+use std::{
+ collections::{HashMap, HashSet},
+ path::PathBuf,
+ time::SystemTime,
+};
+
+use just_enough_vcs::vcs::data::{
+ local::workspace_analyzer::{
+ CreatedRelativePathBuf, FromRelativePathBuf, LostRelativePathBuf, ModifiedRelativePathBuf,
+ ToRelativePathBuf,
+ },
+ member::MemberId,
+ sheet::SheetName,
+ vault::virtual_file::VirtualFileId,
+};
+use serde::Serialize;
+
+#[derive(Serialize)]
+pub struct JVStatusResult {
+ pub current_account: MemberId,
+ pub current_sheet: SheetName,
+ pub moved: HashMap<VirtualFileId, (FromRelativePathBuf, ToRelativePathBuf)>,
+ pub created: HashSet<CreatedRelativePathBuf>,
+ pub lost: HashSet<LostRelativePathBuf>,
+ pub erased: HashSet<PathBuf>,
+ pub modified: HashSet<ModifiedRelativePathBuf>,
+ pub update_time: SystemTime,
+ pub now_time: SystemTime,
+}
+
+impl Default for JVStatusResult {
+ fn default() -> Self {
+ Self {
+ current_account: MemberId::default(),
+ current_sheet: SheetName::default(),
+ moved: HashMap::default(),
+ created: HashSet::default(),
+ lost: HashSet::default(),
+ erased: HashSet::default(),
+ modified: HashSet::default(),
+ update_time: SystemTime::now(),
+ now_time: SystemTime::now(),
+ }
+ }
+}