我尝试对redis进行一个简单的封装,遇到返回泛型数据的问题。代码如果下,我希望获取数据时能用泛型指定数据类型:
pub trait Cache {
async fn get<T>(&self, key: &str) -> Result<T, Error>;
}
实现方法如下:
impl Cache for Redis {
async fn get<T>(&self, key: &str)-> Result<T, Error> {
let r = self.conn.get(key).await?;
Ok(r)
}
}
提示如下错误:
error[E0277]: the trait bound `T: FromRedisValue` is not satisfied
--> src/redis.rs:55:21
|
55 | let r = self.conn.get(key).await?;
| ^^^ the trait `FromRedisValue` is not implemented for `T`
|
请问如果不改 T 为 T: FromRedisValue的话,有什么其他解决办法吗?谢谢