diff --git a/base_patch_generator/src/main.rs b/base_patch_generator/src/main.rs index e089a9a..f3412d3 100644 --- a/base_patch_generator/src/main.rs +++ b/base_patch_generator/src/main.rs @@ -49,8 +49,7 @@ fn main() -> Result<(), anyhow::Error> { patches.add_patches(rom_patches); println!("Writing output file {}", output_path); - let out_file = File::create(&output_path)?; - serde_json::to_writer(out_file, &patches)?; + patches.save_to_file(Path::new(&output_path))?; Ok(()) } diff --git a/enemize/src/lib.rs b/enemize/src/lib.rs index aae5429..63e07af 100644 --- a/enemize/src/lib.rs +++ b/enemize/src/lib.rs @@ -24,7 +24,6 @@ pub struct Patch { pub patch_data: Vec, } -#[derive(Deserialize, Serialize)] pub struct PatchSet { filename: PathBuf, patches: Vec, @@ -43,6 +42,22 @@ impl PatchSet { }) } + pub fn save(&self) -> anyhow::Result<()> { + let file = File::create(&self.filename)?; + let buffer = std::io::BufWriter::new(file); + serde_json::to_writer(buffer, &self.patches)?; + + Ok(()) + } + + pub fn save_to_file(&self, filename: &Path) -> anyhow::Result<()> { + let file = File::create(filename)?; + let buffer = std::io::BufWriter::new(file); + serde_json::to_writer(buffer, &self.patches)?; + + Ok(()) + } + pub fn add_patch(&mut self, patch: Patch) { self.patches.push(patch); }