在尝试使用带有泛型参数的traits并访问这些泛型参数的字段时,我遇到了一个错误消息,该消息表示所涉及的参数不包含这样的字段。
以下是展示此问题的示例代码:
pub struct Settings {
pub time: String,
}
pub trait Foo {
fn get<T>(t: T);
}
struct Bar;
impl Foo for Bar {
fn get<Settings>(t: Settings) {
let x = t.time;
}
}
(游乐场)
编译器给出的错误信息如下:
error: no field `time` on type `Settings`
在这个上下文中,这似乎没有什么意义。我猜这可能是我对通用特征的误用,但错误信息让问题变得更加模糊。