diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-11-06 22:11:18 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2025-11-06 22:11:18 +0800 |
| commit | f871f39ebfd22b8d7c86de1cc172db2d73a3bf9d (patch) | |
| tree | 2302b45418868e9cb8269e23188efa73c135893c /crates/vcs_data/src/data/local/member_held.rs | |
| parent | 986a896062939c41f769b30c90d8d955b959f788 (diff) | |
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
Diffstat (limited to 'crates/vcs_data/src/data/local/member_held.rs')
| -rw-r--r-- | crates/vcs_data/src/data/local/member_held.rs | 25 |
1 files changed, 25 insertions, 0 deletions
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<VirtualFileId, HeldStatus>, +} + +#[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 +} |
