fix: skip serializing empty cache entries

This commit is contained in:
ThetaDev 2024-10-13 22:42:21 +02:00
parent 913bb12755
commit be18d89ea6
No known key found for this signature in database
GPG key ID: E319D3C5148D65B6

View file

@ -395,6 +395,7 @@ struct CacheHolder {
#[serde(default)]
struct CacheData {
clients: HashMap<ClientType, CacheEntry<ClientData>>,
#[serde(skip_serializing_if = "CacheEntry::is_none")]
deobf: CacheEntry<DeobfData>,
}
@ -445,6 +446,10 @@ impl<T> CacheEntry<T> {
CacheEntry::None => None,
}
}
fn is_none(&self) -> bool {
matches!(self, Self::None)
}
}
impl<T> From<T> for CacheEntry<T> {
@ -958,7 +963,10 @@ impl RustyPipe {
async fn store_cache(&self) {
let mut cache_clients = HashMap::new();
for (c, lk) in &self.inner.cache.clients {
cache_clients.insert(*c, lk.read().await.clone());
let v = lk.read().await.clone();
if !v.is_none() {
cache_clients.insert(*c, v);
}
}
if let Some(storage) = &self.inner.storage {