diff options
| author | Malte Voos <git@mal.tc> | 2026-01-01 19:26:01 +0100 |
|---|---|---|
| committer | Malte Voos <git@mal.tc> | 2026-01-04 00:38:38 +0100 |
| commit | c8b942b1fbe8fdab1db0e0f56d3ed86a7486b578 (patch) | |
| tree | cf344838c96ad9bd7bd97d0216c43d6a858f4a60 /src/util/cache.rs | |
| parent | 80a1c8234fc5b6f56bd1f2df4e6118e57631f523 (diff) | |
| download | lleap-main.tar.gz lleap-main.zip | |
Diffstat (limited to 'src/util/cache.rs')
| -rw-r--r-- | src/util/cache.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/util/cache.rs b/src/util/cache.rs new file mode 100644 index 0000000..6e4672f --- /dev/null +++ b/src/util/cache.rs @@ -0,0 +1,24 @@ +use std::env; + +use cached::DiskCache; +use directories::BaseDirs; +use serde::{Serialize, de::DeserializeOwned}; + +pub fn make_cache<K, V>(name: &str) -> DiskCache<K, V> +where + K: ToString, + V: Serialize + DeserializeOwned, +{ + let dir = match BaseDirs::new() { + Some(base_dirs) => base_dirs.cache_dir().join("lleap"), + None => env::current_dir() + .expect("unable to determine current directory") + .join("lleap_cache"), + }; + + DiskCache::new(name) + .set_disk_directory(dir) + .set_sync_to_disk_on_cache_change(true) + .build() + .expect("unable to open disk cache") +} |