Rust Common Trait
Send trait
Send
trait允许在线程间转移所有权
Send
是一种标记trait,绝大部分Rust类型都实现了Send
trait。Send
通常不需要手动实现,只要完全由Send
的类型组成的类型,自然也是Send
的。
Sync trait
Sync
trait允许在多线程中访问引用
Sync
也是一种标记trait,对于某类型T
,若T
的不可变引用&T
是Send
的,则T
是Sync
的,即:&T: Send => T: Sync
。此外,与Send
一样,完全由Sync
的类型组成的类型,也是Sync
的。
Sized trait
Sized
trait决定了一个类型的大小是否在编译时可知
Rust编译器自动为在编译时已知大小的类型实现Sized
trait。此外,Rust还为每个泛型函数隐式的增加了Sized
bound。对于动态大小类型,可以使用?Sized
来覆盖默认规则以放宽限制,其中?Trait
语法只能用于Sized
trait。