首页 > 解决方案 > 是否存在用于引用和值的通用代码的特征,而无需将其全部写出两次?

问题描述

我有一个为迭代器实现的特征 over &u64,但有时我想将它与产生的迭代器一起使用u64。我想知道是否有一种方法可以为两者实现我的特征,T&T无需将其全部写出两次。我认为它相当于这个问题:

pub fn foo<T: RefOrValue<i32>>(t: T) {
    let x: i32 = t.to_value();
    // ...
}

pub fn main() {
    foo(1i32);
    foo(&2i32);
}

是否RefOrValue存在这样的特征?

标签: genericsrustreferencetraits

解决方案


推荐阅读