From e366cade07b5408f95a0e6c268ee123e014e261c Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Fri, 26 Sep 2025 11:08:47 +0800 Subject: refactor: convert InputPackage from tuple to named struct - Replace tuple-based InputPackage with named struct for better type safety - Add proper field names and documentation - Fix typo in InputRelativePathBuf type name - Update add_input and remove_input methods to work with new struct - Maintain serialization compatibility with derive attributes --- crates/vcs/src/data/sheet.rs | 20 +++++++++++++++----- crates/vcs/src/data/vault/sheets.rs | 6 +++--- 2 files changed, 18 insertions(+), 8 deletions(-) (limited to 'crates/vcs/src/data') diff --git a/crates/vcs/src/data/sheet.rs b/crates/vcs/src/data/sheet.rs index 3acc8ff..17a0981 100644 --- a/crates/vcs/src/data/sheet.rs +++ b/crates/vcs/src/data/sheet.rs @@ -14,8 +14,15 @@ use crate::{ pub type SheetName = String; pub type SheetPathBuf = PathBuf; pub type InputName = String; -pub type InputPackage = (InputName, Vec<(InputRaltivePathBuf, VirtualFileId)>); -pub type InputRaltivePathBuf = PathBuf; +pub type InputRelativePathBuf = PathBuf; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct InputPackage { + /// Name of the input package + pub name: InputName, + /// Files in this input package with their relative paths and virtual file IDs + pub files: Vec<(InputRelativePathBuf, VirtualFileId)>, +} const SHEET_NAME: &str = "{sheet-name}"; @@ -62,9 +69,12 @@ impl<'a> Sheet<'a> { pub fn add_input( &mut self, input_name: InputName, - files: Vec<(InputRaltivePathBuf, VirtualFileId)>, + files: Vec<(InputRelativePathBuf, VirtualFileId)>, ) { - self.data.inputs.push((input_name, files)); + self.data.inputs.push(InputPackage { + name: input_name, + files, + }); } /// Remove an input package from the sheet @@ -72,7 +82,7 @@ impl<'a> Sheet<'a> { self.data .inputs .iter() - .position(|(name, _)| name == input_name) + .position(|input| input.name == *input_name) .map(|pos| self.data.inputs.remove(pos)) } diff --git a/crates/vcs/src/data/vault/sheets.rs b/crates/vcs/src/data/vault/sheets.rs index ede4077..f7f6665 100644 --- a/crates/vcs/src/data/vault/sheets.rs +++ b/crates/vcs/src/data/vault/sheets.rs @@ -54,9 +54,9 @@ impl Vault { // Check if it's a YAML file if path.is_file() && path.extension().map_or(false, |ext| ext == "yaml") { - if let Some(_file_stem) = path.file_stem().and_then(|s| s.to_str()) { + if let Some(file_stem) = path.file_stem().and_then(|s| s.to_str()) { // Create a new SheetName and add it to the result list - sheet_names.push(SheetName::new()); + sheet_names.push(file_stem.to_string()); } } } @@ -128,7 +128,7 @@ impl Vault { // Create the sheet file let sheet_data = SheetData { - holder: sheet_name.clone(), + holder: holder.clone(), inputs: Vec::new(), mapping: HashMap::new(), }; -- cgit