kvp.rs

 1use anyhow::Result;
 2
 3use super::Db;
 4
 5impl Db {
 6    pub fn read_kvp(&self, key: &str) -> Result<String> {
 7        let mut stmt = self
 8            .connecion
 9            .prepare_cached("SELECT value FROM kv_store WHERE key = (?)")?;
10
11        Ok(stmt.query_row([key], |row| row.get(0))?)
12    }
13
14    pub fn delete_kvp(&self, key: &str) -> Result<()> {
15        let mut stmt = self
16            .connecion
17            .prepare_cached("SELECT value FROM kv_store WHERE key = (?)")?;
18
19        stmt.execute([key])?;
20
21        Ok(())
22    }
23
24    pub fn write_kvp(&self, key: &str, value: &str) -> Result<()> {
25        let mut stmt = self
26            .connecion
27            .prepare_cached("INSERT OR REPLACE INTO kv_store(key, value) VALUES ((?), (?))")?;
28
29        stmt.execute([key, value])?;
30
31        Ok(())
32    }
33}