From 2851c1dfa6ecb5412e2ed44dae629c6649b8207a Mon Sep 17 00:00:00 2001 From: light-ly <1505507717@qq.com> Date: Tue, 12 Nov 2024 18:30:02 +0800 Subject: [PATCH] add deserialize function --- src/core/primitive_parser.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/core/primitive_parser.rs b/src/core/primitive_parser.rs index 2116f39..1a096c5 100644 --- a/src/core/primitive_parser.rs +++ b/src/core/primitive_parser.rs @@ -1,7 +1,7 @@ use std::fs; use std::path::PathBuf; use std::{collections::HashMap, fs::File}; -use std::io::BufReader; +use std::io::{BufReader, Read}; use bincode::Error; use ropey::Rope; @@ -23,6 +23,23 @@ pub struct PrimitiveXml { pub name_to_template: HashMap } +pub fn load_primitive_bin(file: &str) -> Option { + if let Ok(mut file) = File::open(file) { + let mut buffer = Vec::new(); + match file.read_to_end(&mut buffer) { + Ok(_) => { + let deserialized_data: PrimitiveXml = bincode::deserialize(&buffer).unwrap(); + Some(deserialized_data) + } + Err(_) => { + None + } + } + } else { + None + } +} + #[allow(unused)] pub fn init_parse_primitive_files(dir: &str) -> Result { let mut primitive_xml = PrimitiveXml::default();