Rust 什么时候应该';静态边界';添加到特征定义中

Rust 什么时候应该';静态边界';添加到特征定义中,rust,Rust,有人能在这里为我解释一下静态的用法吗?我看到了这段代码,但我不明白它是如何使用的 //什么时候应该将“静态绑定”添加到特征定义中 pub trait finalitysyncipeline:'静态+克隆+调试+发送+同步{ ///最终性证明来源的名称。 常量源名称:&'static str; ///最终性证明目标的名称。 const TARGET_NAME:&'static str; ///我们正在同步的标头由此哈希标识。 类型散列:Eq+Clone+Copy+Send+Sync+Debug;

有人能在这里为我解释一下静态的用法吗?我看到了这段代码,但我不明白它是如何使用的

//什么时候应该将“静态绑定”添加到特征定义中
pub trait finalitysyncipeline:'静态+克隆+调试+发送+同步{
///最终性证明来源的名称。
常量源名称:&'static str;
///最终性证明目标的名称。
const TARGET_NAME:&'static str;
///我们正在同步的标头由此哈希标识。
类型散列:Eq+Clone+Copy+Send+Sync+Debug;
///我们正在同步的标题由此编号标识。
类型编号:继电器实用程序::BlockNumberBase;
///我们正在同步的标头的类型。
类型头:SourceHeader;
///最终性证明类型。
类型FinalityProof:FinalityProof;
}
作为特征绑定,它意味着该类型不包含任何非静态引用。接受者可以想拿多久就拿多久,直到他们把它扔掉,它永远不会失效


请参阅:

此答案正确解释了
静态
生存期界限的含义。除此之外,通常需要
'静态
的原因是能够将值传递给非作用域线程(由于线程可以无限期运行,因此需要
'静态
值),或者将其存储在全局或线程本地容器中。由于trait还需要
Send
Sync
,因此线程中的使用很可能是
静态
的动机。