From 958ce658753411085afc89acdbbaf942fc25e7fb Mon Sep 17 00:00:00 2001 From: "Ruan E. Formigoni" Date: Sat, 19 Oct 2024 10:16:21 -0300 Subject: [PATCH] Open or create empty database for kv --- gui/shared/src/db/kv.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gui/shared/src/db/kv.rs b/gui/shared/src/db/kv.rs index 76fbe7e..a268452 100644 --- a/gui/shared/src/db/kv.rs +++ b/gui/shared/src/db/kv.rs @@ -5,16 +5,23 @@ use std::collections::HashMap; pub type Kv = HashMap; +// fn open() {{{ +fn open(db: &PathBuf) -> anyhow::Result +{ + Ok(serde_json::from_reader(File::open(db)?)?) +} // fn open() }}} + // pub fn read() {{{ pub fn read(db : &PathBuf) -> anyhow::Result { - Ok(serde_json::from_reader(File::open(db)?)?) + open(db) } // fn: read }}} // pub fn write() {{{ pub fn write(db : &PathBuf, key: &String, val: &String) -> anyhow::Result<()> { - let mut kv : Kv = serde_json::from_reader(File::open(db.clone())?)?; + // Open existing or create an empty database + let mut kv : Kv = open(db).unwrap_or(Kv::default()); // Append kv.insert(key.clone(), val.clone());