我有一个关于特定特征的定义的问题。基本上我想定义一个特征,它提供一个函数来获取可以识别它的结构的 id (或键)。但是,我陷入困境,不知道如何定义该特征(或具体实现)。
例如我Data这里有这个结构:
#[derive(Debug)]
struct Data{
id: String,
value: i32
}
Run Code Online (Sandbox Code Playgroud)
现在假设我想创建一个仅包含单个函数的特征。这个函数应该提供某种类型的密钥(因此是可哈希的,等等):
trait Entity {
fn get_id<K: Eq + PartialEq + Hash>(&self) -> K;
}
Run Code Online (Sandbox Code Playgroud)
但当我想实现这个特质时,我陷入了困境。例如,我收到以下代码片段的错误消息:类型不匹配:
impl Entity for Data {
fn get_id<String>(&self) -> String {
self.id.clone()
}
}
Run Code Online (Sandbox Code Playgroud)
我可以做什么来克服这个问题?