diff options
Diffstat (limited to 'src/outputs')
| -rw-r--r-- | src/outputs/status.rs | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/src/outputs/status.rs b/src/outputs/status.rs index f9ce875..2b8d9c6 100644 --- a/src/outputs/status.rs +++ b/src/outputs/status.rs @@ -1,43 +1,45 @@ -use std::{ - collections::{HashMap, HashSet}, - path::PathBuf, - time::SystemTime, -}; +use std::{collections::HashMap, time::SystemTime}; use just_enough_vcs::vcs::data::{ - local::workspace_analyzer::{ - CreatedRelativePathBuf, FromRelativePathBuf, LostRelativePathBuf, ModifiedRelativePathBuf, - ToRelativePathBuf, - }, + local::workspace_analyzer::{AnalyzeResultPure, ModifiedRelativePathBuf}, member::MemberId, sheet::SheetName, - vault::virtual_file::VirtualFileId, }; use serde::Serialize; #[derive(Serialize)] -pub struct JVStatusResult { +pub struct JVStatusOutput { 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 is_host_mode: bool, + pub in_ref_sheet: bool, + pub analyzed_result: AnalyzeResultPure, + pub wrong_modified_items: HashMap<ModifiedRelativePathBuf, JVStatusWrongModifyReason>, pub update_time: SystemTime, pub now_time: SystemTime, } -impl Default for JVStatusResult { +#[derive(Serialize)] +pub enum JVStatusWrongModifyReason { + BaseVersionMismatch { + base_version: String, + latest_version: String, + }, + ModifiedButNotHeld { + holder: String, + }, + NoHolder, +} + +impl Default for JVStatusOutput { 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(), + is_host_mode: false, + in_ref_sheet: false, + analyzed_result: AnalyzeResultPure::default(), + wrong_modified_items: HashMap::new(), update_time: SystemTime::now(), now_time: SystemTime::now(), } |
