使用现有函数选择 Rust 特性

有没有办法使用现有的 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 调用。是否可以在不嵌套的情况下执行此操作?

lost32 回答:使用现有函数选择 Rust 特性

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/781.html

大家都在问