mirror of
https://github.com/Drop-OSS/drop-app.git
synced 2025-11-14 00:31:33 +10:00
feat(cache): Implemented caching for game metadata
This commit is contained in:
@ -1,5 +1,8 @@
|
||||
use cacache::Integrity;
|
||||
use openssl::hash::{hash, MessageDigest};
|
||||
use rustix::path::Arg;
|
||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
||||
use serde_binary::binary_stream::Endian;
|
||||
|
||||
use crate::{database::db::borrow_db_checked, error::remote_access_error::RemoteAccessError};
|
||||
|
||||
@ -17,11 +20,11 @@ macro_rules! offline {
|
||||
}
|
||||
|
||||
pub fn cache_object<'a, K: AsRef<str>, D: Serialize + DeserializeOwned>(key: K, data: &D) -> Result<Integrity, RemoteAccessError> {
|
||||
let bytes = bincode::serialize(data).unwrap();
|
||||
let bytes = serde_json::to_vec(data).unwrap();
|
||||
cacache::write_sync(&borrow_db_checked().cache_dir, key, bytes).map_err(|e| RemoteAccessError::Cache(e))
|
||||
}
|
||||
pub fn get_cached_object<'a, K: AsRef<str>, D: Serialize + DeserializeOwned>(key: K) -> Result<D,RemoteAccessError> {
|
||||
pub fn get_cached_object<'a, K: AsRef<str>, D: Serialize + DeserializeOwned>(key: K) -> Result<D, RemoteAccessError> {
|
||||
let bytes = cacache::read_sync(&borrow_db_checked().cache_dir, key).map_err(|e| RemoteAccessError::Cache(e))?;
|
||||
let data = bincode::deserialize::<D>(&bytes).unwrap();
|
||||
let data = serde_json::from_slice::<D>(&bytes).unwrap();
|
||||
Ok(data)
|
||||
}
|
||||
Reference in New Issue
Block a user