相关类型中+运算符的用途是什么?

Kaj*_*nha 1 rust

我需要知道+运算符的目的和最后的'static关键字.我理解'static是指生命周期,但它在此代码中解决了什么目的.

pub trait Group {
    type ColumnValue: Sized + Clone + Eq + Hash + 'static;

    // ...methods...
}
Run Code Online (Sandbox Code Playgroud)

从llamadb项目源文件中提取了此代码文本.

Vee*_*rac 6

在该上下文中,type X: Y表示X具有边界的某种类型Y.+是一种组合边界的方法,X必须满足所有边界.

换句话说,任何implfor Group必须具有相关的类型ColumnValue,Sized 并且 Clone能够 Eq能够 Hash能够 'static.

因此,任何使用的代码都T: Group知道任何类型的东西T::ColumnValue都可以存储在堆栈(Sized)上,克隆,检查相等,散列并且没有非'static生命周期要求.