diff options
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 +} |
