From 4f6900f121e080925360ffd1f138d7a4e20dcef4 Mon Sep 17 00:00:00 2001 From: Jaby Date: Mon, 17 Oct 2022 20:44:12 +0200 Subject: [PATCH] Create dummy files for writing --- src/Tools/psxcdgen_ex/src/main.rs | 17 ++++++++++++----- src/Tools/psxcdgen_ex/src/types/mod.rs | 18 ++++++++++++++---- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/Tools/psxcdgen_ex/src/main.rs b/src/Tools/psxcdgen_ex/src/main.rs index 42ccf87c..9fe3cac2 100644 --- a/src/Tools/psxcdgen_ex/src/main.rs +++ b/src/Tools/psxcdgen_ex/src/main.rs @@ -1,22 +1,29 @@ use psxcdgen_ex::types::{layout::Layout, CDDesc, File, Directory}; use tool_helper::Error; +fn make_file(name: &str) -> Result { + let mut name = name.to_owned(); + + name.push_str(".txt"); + File::new_regular(name.as_ref(), "Planschbecken sind planschig und so".to_owned().into_bytes()) +} + fn populate() -> Result { let mut desc = CDDesc::new(); - let file = File::new("Planschi.jpg")?; - let file2 = File::new("Wuff.png")?; + let file = make_file("Planschi")?; + let file2 = make_file("Wuff")?; let folder = { let mut folder = Directory::new("Sub")?; let sub_folder = { let mut folder = Directory::new("SubSub")?; - folder.add_file(File::new("Blubb.bin")?); + folder.add_file(make_file("Blubb")?); folder }; folder.add_dir(sub_folder); - folder.add_file(File::new("Schwimm.jpg")?); - folder.add_file(File::new("Miau.png")?); + folder.add_file(make_file("Schwimm")?); + folder.add_file(make_file("Miau")?); folder }; diff --git a/src/Tools/psxcdgen_ex/src/types/mod.rs b/src/Tools/psxcdgen_ex/src/types/mod.rs index 8b38ac52..48ac9c69 100644 --- a/src/Tools/psxcdgen_ex/src/types/mod.rs +++ b/src/Tools/psxcdgen_ex/src/types/mod.rs @@ -192,19 +192,29 @@ impl std::fmt::Display for Directory { } } +enum FileType { + Regular(Vec) +} + pub struct File { pub name: FileName, pub properties: Properties, - _content: Vec + content: FileType } impl File { - pub fn new(file_name: &str) -> Result { - Ok(File{name: FileName::from_str(file_name)?, properties: Properties::default(), _content: Vec::new()}) + pub fn new_regular(file_name: &str, content: Vec) -> Result { + Ok(File{name: FileName::from_str(file_name)?, properties: Properties::default(), content: FileType::Regular(content)}) } pub fn get_sector_count(&self) -> usize { - self.properties.sector_count_xa_data(0) + let content_size = { + match &self.content { + FileType::Regular(content) => content.len() + } + }; + + self.properties.sector_count_xa_data(content_size) } }