summaryrefslogtreecommitdiff
path: root/src/inputs/status.rs
blob: eb3b504fc057860da096cd753cc92d55db108149 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use std::{collections::HashMap, time::SystemTime};

use just_enough_vcs::vcs::data::{
    local::{
        latest_file_data::LatestFileData,
        local_sheet::LocalSheetData,
        workspace_analyzer::{AnalyzeResultPure, ModifiedRelativePathBuf},
    },
    member::MemberId,
    sheet::SheetName,
};

use crate::outputs::status::JVStatusWrongModifyReason;

pub struct JVStatusInput {
    pub current_account: MemberId,
    pub current_sheet: SheetName,
    pub is_host_mode: bool,
    pub in_ref_sheet: bool,
    pub analyzed_result: AnalyzeResultPure,
    pub latest_file_data: LatestFileData,
    pub local_sheet_data: LocalSheetData,
    pub wrong_modified_items: HashMap<ModifiedRelativePathBuf, JVStatusWrongModifyReason>,
    pub update_time: SystemTime,
    pub now_time: SystemTime,
}

impl Default for JVStatusInput {
    fn default() -> Self {
        Self {
            current_account: MemberId::default(),
            current_sheet: SheetName::default(),
            is_host_mode: false,
            in_ref_sheet: false,
            analyzed_result: AnalyzeResultPure::default(),
            latest_file_data: LatestFileData::default(),
            local_sheet_data: LocalSheetData::default(),
            wrong_modified_items: HashMap::new(),
            update_time: SystemTime::now(),
            now_time: SystemTime::now(),
        }
    }
}