From f871f39ebfd22b8d7c86de1cc172db2d73a3bf9d Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 6 Nov 2025 22:11:18 +0800 Subject: feat: Add local data management modules (WIP) - cached_sheet.rs: Cached sheet data management - local_sheet.rs: Local sheet mapping structure - member_held.rs: Member file holding status tracking - NOTE: These modules are still under development --- crates/vcs_data/src/data/local/member_held.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 crates/vcs_data/src/data/local/member_held.rs (limited to 'crates/vcs_data/src/data/local/member_held.rs') diff --git a/crates/vcs_data/src/data/local/member_held.rs b/crates/vcs_data/src/data/local/member_held.rs new file mode 100644 index 0000000..e9e384d --- /dev/null +++ b/crates/vcs_data/src/data/local/member_held.rs @@ -0,0 +1,25 @@ +use std::collections::HashMap; + +use cfg_file::ConfigFile; +use serde::{Deserialize, Serialize}; + +use crate::{ + constants::CLIENT_FILE_MEMBER_HELD_NOSET, + data::{member::MemberId, vault::virtual_file::VirtualFileId}, +}; + +#[derive(Debug, Default, Clone, Serialize, Deserialize, ConfigFile)] +#[cfg_file(path = CLIENT_FILE_MEMBER_HELD_NOSET)] +pub struct MemberHeld { + /// File holding status + held_status: HashMap, +} + +#[derive(Debug, Default, Clone, Serialize, Deserialize)] +pub enum HeldStatus { + HeldWith(MemberId), // Held, status changes are sync to the client + NotHeld, // Not held, status changes are sync to the client + + #[default] + WantedToKnow, // Holding status is unknown, notify server must inform client +} -- cgit