diff options
Diffstat (limited to 'crates/vcs_data')
| -rw-r--r-- | crates/vcs_data/src/constants.rs | 9 | ||||
| -rw-r--r-- | crates/vcs_data/src/data/local.rs | 1 | ||||
| -rw-r--r-- | crates/vcs_data/src/data/sheet.rs | 18 | ||||
| -rw-r--r-- | crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs | 6 |
4 files changed, 27 insertions, 7 deletions
diff --git a/crates/vcs_data/src/constants.rs b/crates/vcs_data/src/constants.rs index 7514fe2..cd6eaa3 100644 --- a/crates/vcs_data/src/constants.rs +++ b/crates/vcs_data/src/constants.rs @@ -17,7 +17,7 @@ pub const SERVER_FILE_VAULT: &str = "./vault.toml"; // Server - Sheets pub const REF_SHEET_NAME: &str = "ref"; pub const SERVER_PATH_SHEETS: &str = "./sheets/"; -pub const SERVER_FILE_SHEET: &str = "./sheets/{sheet-name}.yaml"; +pub const SERVER_FILE_SHEET: &str = "./sheets/{sheet_name}.yaml"; // Server - Members pub const SERVER_PATH_MEMBERS: &str = "./members/"; @@ -35,6 +35,7 @@ pub const SERVER_FILE_VF_META: &str = "./storage/{vf_index}/{vf_id}/meta.yaml"; // Server - Service pub const SERVER_FILE_LOCKFILE: &str = "./.lock"; +// Server - Documents pub const SERVER_FILE_README: &str = "./README.md"; // ------------------------------------------------------------------------------------- @@ -45,6 +46,12 @@ pub const CLIENT_PATH_WORKSPACE_ROOT: &str = "./.jv/"; // Client - Workspace (Main) pub const CLIENT_FILE_WORKSPACE: &str = "./.jv/workspace.toml"; +// Client - Latest Information +pub const CLIENT_FILE_LATEST_INFO: &str = "./.jv/latest.json"; + +// Client - Sheets +pub const CLIENT_FILE_SHEET_COPY: &str = "./.jv/sheets/{sheet_name}.copy.json"; + // Client - Other pub const CLIENT_FILE_IGNOREFILES: &str = "IGNORE_RULES.toml"; pub const CLIENT_FILE_README: &str = "./README.md"; diff --git a/crates/vcs_data/src/data/local.rs b/crates/vcs_data/src/data/local.rs index fb43042..407b171 100644 --- a/crates/vcs_data/src/data/local.rs +++ b/crates/vcs_data/src/data/local.rs @@ -10,6 +10,7 @@ use crate::{ }; pub mod config; +pub mod latest_info; pub struct LocalWorkspace { config: Arc<Mutex<LocalConfig>>, diff --git a/crates/vcs_data/src/data/sheet.rs b/crates/vcs_data/src/data/sheet.rs index f1cf67c..b558c0d 100644 --- a/crates/vcs_data/src/data/sheet.rs +++ b/crates/vcs_data/src/data/sheet.rs @@ -35,7 +35,7 @@ impl PartialEq for InputPackage { } } -const SHEET_NAME: &str = "{sheet-name}"; +const SHEET_NAME: &str = "{sheet_name}"; pub struct Sheet<'a> { /// The name of the current sheet @@ -48,7 +48,7 @@ pub struct Sheet<'a> { pub(crate) vault_reference: &'a Vault, } -#[derive(Default, Serialize, Deserialize, ConfigFile)] +#[derive(Default, Serialize, Deserialize, ConfigFile, Clone)] pub struct SheetData { /// The holder of the current sheet, who has full operation rights to the sheet mapping pub(crate) holder: MemberId, @@ -61,6 +61,10 @@ pub struct SheetData { } impl<'a> Sheet<'a> { + pub fn name(&self) -> &SheetName { + &self.name + } + /// Get the holder of this sheet pub fn holder(&self) -> &MemberId { &self.data.holder @@ -344,4 +348,14 @@ impl<'a> Sheet<'a> { common_components.into_iter().collect() } + + /// Clone the data of the sheet + pub fn clone_data(&self) -> SheetData { + self.data.clone() + } + + /// Convert the sheet into its data representation + pub fn to_data(self) -> SheetData { + self.data + } } diff --git a/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs b/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs index a8dfb89..7484e4b 100644 --- a/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs +++ b/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs @@ -42,8 +42,7 @@ async fn test_sheet_creation_management_and_persistence() -> Result<(), std::io: assert!(sheet.mapping().is_empty()); // Verify sheet file was created - const SHEET_NAME_PARAM: &str = "{sheet-name}"; - let sheet_path = dir.join(SERVER_FILE_SHEET.replace(SHEET_NAME_PARAM, &sheet_name)); + let sheet_path = dir.join(SERVER_FILE_SHEET.replace("{sheet_name}", &sheet_name)); assert!(sheet_path.exists()); // Test 2: Add input packages to the sheet @@ -296,8 +295,7 @@ async fn test_sheet_data_serialization() -> Result<(), std::io::Error> { sheet.persist().await?; // Verify the sheet file was created - const SHEET_NAME_PARAM: &str = "{sheet-name}"; - let sheet_path = dir.join(SERVER_FILE_SHEET.replace(SHEET_NAME_PARAM, &sheet_name)); + let sheet_path = dir.join(SERVER_FILE_SHEET.replace("{sheet_name}", &sheet_name)); assert!(sheet_path.exists()); // Clean up |
