我有一个关于特定特征定义的问题.基本上,我想定义一个特征,该特征提供一个函数来获取可以标识它的 struct 的id(或键). 然而,我被困住了,不知道如何定义特征(或具体实现).
例如,我在这里有这个 struct Data
:
#[derive(Debug)]
struct Data{
id: String,
value: i32
}
现在让我们假设我想要创建一个只包含单个函数的特征.该函数应该提供某种类型的密钥(因此是Hasable等):
trait Entity {
fn get_id<K: Eq + PartialEq + Hash>(&self) -> K;
}
但当我想要实现特征时,我被卡住了.例如,我收到以下代码片段的错误消息mismatched types:
impl Entity for Data {
fn get_id<String>(&self) -> String {
self.id.clone()
}
}
我能做些什么来克服这个问题?