| 458 | } |
| 459 | |
| 460 | fn get_entry<T: FromSql>(&self, table: Table, key: impl AsRef<str>) -> Result<Option<T>, DatabaseError> { |
| 461 | let conn = self.pool.get()?; |
| 462 | let mut stmt = conn.prepare(&format!("SELECT value FROM {table} WHERE key = ?1"))?; |
| 463 | match stmt.query_row([key.as_ref()], |row| row.get(0)) { |
| 464 | Ok(data) => Ok(Some(data)), |
| 465 | Err(Error::QueryReturnedNoRows) => Ok(None), |
| 466 | Err(err) => Err(err.into()), |
| 467 | } |
| 468 | } |
| 469 | |
| 470 | fn set_entry(&self, table: Table, key: impl AsRef<str>, value: impl ToSql) -> Result<usize, DatabaseError> { |
| 471 | Ok(self.pool.get()?.execute( |