use std::{collections::HashMap, fs::File, io::Write, path::PathBuf}; use crate::Message; pub struct Bundle { path: PathBuf, messages: HashMap, } impl Bundle { pub fn load_from_disk(path: PathBuf) -> Self { Self { path, messages: HashMap::new(), } } pub fn message(&mut self, name: String) -> &mut Message { self.messages .entry(name.to_owned()) .or_insert(Message::new(name.to_owned())) } pub fn save(&self) { self.messages.iter().for_each(|(key, value)| { let mut path = self.path.clone(); path.push(key); path.set_extension("toml"); save_file(&path, toml::to_string(value).unwrap().as_bytes()); }); } } fn save_file(path: &PathBuf, s: &[u8]) { let mut f = File::create(path).unwrap(); f.write(s).unwrap(); } #[cfg(test)] mod test {}