首页 > 解决方案 > 有没有办法避免在很多地方写类型约束?

问题描述

我有一个需要实现很多特征的泛型类型的结构,这让我的代码读/写非常令人沮丧,因为我需要在很多地方包含这些约束。这是一个例子:

use std::fmt::*;
use std::ops::*;

pub struct MyStruct<T: Copy + Clone + Display + Debug + Neg + Eq + Ord + Cmp> {
    //...
}

impl<T: Copy + Clone + Display + Debug + Neg + Eq + Ord + Cmp> MyStruct<T> {
    //...
}

impl<T: Copy + Clone + Display + Debug + Neg + Eq + Ord + Cmp> Ord for MyStruct<T> {
    //...
}

impl<T: Copy + Clone + Display + Debug + Neg + Eq + Ord + Cmp> Neg for MyStruct<T> {
    //...
}

我没有尝试编译这个例子,所以我可能在其中犯了错误,但我认为它充分说明了这个问题。有没有办法以类型约束只出现在一个地方的方式来编写它?

标签: rust

解决方案


推荐阅读