tetrio_api/http/caches/
cache.rs1use std::fmt::Debug;
2
3use async_trait::async_trait;
4use serde::{de::DeserializeOwned, Serialize};
5
6use crate::{http::error::Error, models::packet::{Packet, SuccessPacket}};
7
8
9
10#[async_trait]
11pub trait CacheHandler<ErrorT: std::error::Error + Sync + Send + Debug> {
12 type CachingError: std::error::Error + Sync + Send + Debug;
13 async fn try_get_cache<T: DeserializeOwned + Serialize>(&self, cache_key: &str) -> Result<Option<Packet<T>>, Error<ErrorT, Self::CachingError>>;
17
18 async fn cache_value<T: DeserializeOwned + Serialize + Send + Sync>(&self, cache_key: &str, cache_value: SuccessPacket<T>) -> Result<(), Error<ErrorT, Self::CachingError>>;
21}