收藏中的扩展特征

时间:2016-12-04 21:12:06

标签: generics rust traits

我有一个普通特征Fruit和一个扩展特征WeightedFruit。 Rust编译器在Fruit中接受LinkedList特征,但在WeightedFruit中不接受BTreeSet。应该更改什么才能使排序集合有效?

pub trait Fruit { }

pub trait WeightedFruit: Fruit + Ord { }

pub fn main() {
    let unsorted: LinkedList<Box<Fruit>> = LinkedList::new();
    let sorted: BTreeSet<Box<WeightedFruit>> = BTreeSet::new();
}

错误消息是:

the trait `WeightedFruit` cannot be made into an object
trait `WeightedFruit: std::cmp::Ord` not satisfied
...

0 个答案:

没有答案