diff options
Diffstat (limited to 'crates/vcs_data/src/data/local/latest_info.rs')
| -rw-r--r-- | crates/vcs_data/src/data/local/latest_info.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/crates/vcs_data/src/data/local/latest_info.rs b/crates/vcs_data/src/data/local/latest_info.rs index e4f45b1..bc13ae9 100644 --- a/crates/vcs_data/src/data/local/latest_info.rs +++ b/crates/vcs_data/src/data/local/latest_info.rs @@ -5,18 +5,21 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; use tokio::time::Instant; use crate::{ - constants::CLIENT_FILE_LATEST_INFO, + constants::{CLIENT_FILE_LATEST_INFO, CLIENT_FILE_LATEST_INFO_NOSET}, data::{ + local::{LocalWorkspace, config::LocalConfig}, member::{Member, MemberId}, sheet::{SheetData, SheetName}, }, }; +const ACCOUNT: &str = "{account}"; + /// # Latest Info /// Locally cached latest information, /// used to cache personal information from upstream for querying and quickly retrieving member information. #[derive(Default, Serialize, Deserialize, ConfigFile)] -#[cfg_file(path = CLIENT_FILE_LATEST_INFO)] +#[cfg_file(path = CLIENT_FILE_LATEST_INFO_NOSET)] pub struct LatestInfo { // Sheets /// My sheets, indicating which sheets I can edit @@ -38,6 +41,13 @@ pub struct LatestInfo { pub vault_members: Vec<Member>, } +impl LatestInfo { + /// Get the path to the latest info file for a given workspace and member ID + pub fn latest_info_path(local_workspace_path: &PathBuf, member_id: &MemberId) -> PathBuf { + local_workspace_path.join(CLIENT_FILE_LATEST_INFO.replace(ACCOUNT, member_id)) + } +} + #[derive(Default, Serialize, Deserialize)] pub struct SheetInfo { pub sheet_name: SheetName, |
