diff options
Diffstat (limited to 'crates/vcs_data/src/data/local')
| -rw-r--r-- | crates/vcs_data/src/data/local/config.rs | 5 | ||||
| -rw-r--r-- | crates/vcs_data/src/data/local/latest_file_data.rs | 8 | ||||
| -rw-r--r-- | crates/vcs_data/src/data/local/latest_info.rs | 11 | ||||
| -rw-r--r-- | crates/vcs_data/src/data/local/local_sheet.rs | 7 |
4 files changed, 27 insertions, 4 deletions
diff --git a/crates/vcs_data/src/data/local/config.rs b/crates/vcs_data/src/data/local/config.rs index cfbc0d4..8a89c20 100644 --- a/crates/vcs_data/src/data/local/config.rs +++ b/crates/vcs_data/src/data/local/config.rs @@ -26,14 +26,17 @@ const SHEET_NAME: &str = "{sheet_name}"; pub struct LocalConfig { /// The upstream address, representing the upstream address of the local workspace, /// to facilitate timely retrieval of new updates from the upstream source. + #[serde(rename = "addr")] upstream_addr: SocketAddr, /// The member ID used by the current local workspace. /// This ID will be used to verify access permissions when connecting to the upstream server. + #[serde(rename = "as")] using_account: MemberId, /// Whether the current member is interacting as a host. /// In host mode, full Vault operation permissions are available except for adding new content. + #[serde(rename = "host")] using_host_mode: bool, /// Whether the local workspace is stained. @@ -42,9 +45,11 @@ pub struct LocalConfig { /// /// If the value is None, it means not stained; /// otherwise, it contains the stain identifier (i.e., the upstream vault's unique ID) + #[serde(rename = "up_uid")] stained_uuid: Option<VaultUuid>, /// The name of the sheet currently in use. + #[serde(rename = "use")] sheet_in_use: Option<SheetName>, } diff --git a/crates/vcs_data/src/data/local/latest_file_data.rs b/crates/vcs_data/src/data/local/latest_file_data.rs index 8a6a3cb..5248cfb 100644 --- a/crates/vcs_data/src/data/local/latest_file_data.rs +++ b/crates/vcs_data/src/data/local/latest_file_data.rs @@ -20,18 +20,24 @@ const ACCOUNT: &str = "{account}"; #[cfg_file(path = CLIENT_FILE_MEMBER_HELD_NOSET)] pub struct LatestFileData { /// File holding status + #[serde(rename = "held")] held_status: HashMap<VirtualFileId, HeldStatus>, /// File version + #[serde(rename = "ver")] versions: HashMap<VirtualFileId, VirtualFileVersion>, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub enum HeldStatus { + #[serde(rename = "Hold")] HeldWith(MemberId), // Held, status changes are sync to the client - NotHeld, // Not held, status changes are sync to the client + + #[serde(rename = "None")] + NotHeld, // Not held, status changes are sync to the client #[default] + #[serde(rename = "Unknown")] WantedToKnow, // Holding status is unknown, notify server must inform client } diff --git a/crates/vcs_data/src/data/local/latest_info.rs b/crates/vcs_data/src/data/local/latest_info.rs index a2456fc..e11836b 100644 --- a/crates/vcs_data/src/data/local/latest_info.rs +++ b/crates/vcs_data/src/data/local/latest_info.rs @@ -30,31 +30,39 @@ pub struct LatestInfo { // Sheets /// Visible sheets, /// indicating which sheets I can edit + #[serde(rename = "my")] pub visible_sheets: Vec<SheetName>, /// Invisible sheets, /// indicating which sheets I can export files to (these sheets are not readable to me) + #[serde(rename = "others")] pub invisible_sheets: Vec<SheetInfo>, /// Reference sheets, /// indicating sheets owned by the host, visible to everyone, /// but only the host can modify or add mappings within them + #[serde(rename = "refsheets")] pub reference_sheets: HashSet<SheetName>, /// Reference sheet data, indicating what files I can get from the reference sheet + #[serde(rename = "ref")] pub ref_sheet_content: SheetData, /// Reverse mapping from virtual file IDs to actual paths in reference sheets + #[serde(rename = "ref_vfs")] pub ref_sheet_vfs_mapping: HashMap<VirtualFileId, SheetPathBuf>, /// Shares in my sheets, indicating which external merge requests have entries that I can view + #[serde(rename = "shares")] pub shares_in_my_sheets: HashMap<SheetName, HashMap<SheetShareId, Share>>, /// Update instant + #[serde(rename = "update")] pub update_instant: Option<SystemTime>, // Members /// All member information of the vault, allowing me to contact them more conveniently + #[serde(rename = "members")] pub vault_members: Vec<Member>, } @@ -67,6 +75,9 @@ impl LatestInfo { #[derive(Default, Serialize, Deserialize)] pub struct SheetInfo { + #[serde(rename = "name")] pub sheet_name: SheetName, + + #[serde(rename = "holder")] pub holder_name: Option<MemberId>, } diff --git a/crates/vcs_data/src/data/local/local_sheet.rs b/crates/vcs_data/src/data/local/local_sheet.rs index 4ebdaac..8ad059f 100644 --- a/crates/vcs_data/src/data/local/local_sheet.rs +++ b/crates/vcs_data/src/data/local/local_sheet.rs @@ -32,16 +32,17 @@ pub struct LocalSheet<'a> { #[cfg_file(path = CLIENT_FILE_LOCAL_SHEET_NOSET)] // Do not use LocalSheet::write or LocalSheet::read pub struct LocalSheetData { /// Local file path to metadata mapping. - #[serde(rename = "mapping")] + #[serde(rename = "map")] pub(crate) mapping: HashMap<LocalFilePathBuf, LocalMappingMetadata>, + #[serde(rename = "vfs")] pub(crate) vfs: HashMap<VirtualFileId, LocalFilePathBuf>, } #[derive(Debug, Serialize, Deserialize, Clone)] pub struct LocalMappingMetadata { /// Hash value generated immediately after the file is downloaded to the local workspace - #[serde(rename = "hash")] + #[serde(rename = "base_hash")] pub(crate) hash_when_updated: String, /// Time when the file was downloaded to the local workspace @@ -57,7 +58,7 @@ pub struct LocalMappingMetadata { pub(crate) version_desc_when_updated: VirtualFileVersionDescription, /// Version when the file was downloaded to the local workspace - #[serde(rename = "version")] + #[serde(rename = "ver")] pub(crate) version_when_updated: VirtualFileVersion, /// Virtual file ID corresponding to the local path |
