有没有办法使用现有的 fn 来选择一个 trait,而不是在 impl 块中提供一个? IE。如果我有一个带有函数的结构:
struct Thing(u32);
impl Thing {
fn get_value_plus_one(&self) -> u32 {
return self.0 + 1;
}
}
然后我有一个具有匹配功能的特征
trait PlusOne {
fn get_value_plus_one(&self) -> u32;
}
是否有一种干净的方法可以使用现有的 Thing
函数使 PlusOne
符合 get_value_plus_one
特征?这会导致编译器错误:
impl PlusOne for Thing {} // !! missing `get_value_plus_one` in implementation
我知道我可以将 Thing.get_value_plus_one 重命名为其他名称 (get_value_plus_one_u32
),然后提供如下实现:
impl PlusOne for Thing {
fn get_value_plus_one(&self) -> u32 {
return self.get_value_plus_one_u32();
}
}
但这引入了嵌套的 fn 调用。是否可以在不嵌套的情况下执行此操作?