@@ -3,8 +3,8 @@ use crate::cache::level::{CacheLevel, metrics_get_handler, metrics_set_handler};
33use crate :: config;
44use redis:: aio:: ConnectionManager ;
55use redis:: {
6- AsyncCommands , FromRedisValue , RedisResult , RedisWrite , SetExpiry , SetOptions , ToRedisArgs ,
7- Value , from_redis_value,
6+ AsyncCommands , FromRedisValue , ParsingError , RedisWrite , SetExpiry , SetOptions , ToRedisArgs ,
7+ ToSingleRedisArg , Value , from_redis_value,
88} ;
99use serde:: Serialize ;
1010use serde:: de:: DeserializeOwned ;
@@ -212,9 +212,9 @@ impl<D> FromRedisValue for Entry<D>
212212where
213213 D : Clone + Debug + Eq + PartialEq + DeserializeOwned ,
214214{
215- fn from_redis_value ( v : & Value ) -> RedisResult < Self > {
215+ fn from_redis_value ( v : Value ) -> Result < Self , ParsingError > {
216216 let v: String = from_redis_value ( v) ?;
217- Ok ( serde_json:: from_str ( & v) ?)
217+ Ok ( serde_json:: from_str ( & v) . map_err ( |err| ParsingError :: from ( err . to_string ( ) ) ) ?)
218218 }
219219}
220220
@@ -230,3 +230,5 @@ where
230230 out. write_arg ( str. as_ref ( ) )
231231 }
232232}
233+
234+ impl < D > ToSingleRedisArg for Entry < D > where D : Clone + Debug + Eq + PartialEq + Serialize { }
0 commit comments