借用 BorrowMut 和 ToOwned
std::borrow::Borrow
和 std::borrow::BorrowMut
特征用于处理所拥有类型的借用类型。对于 A
和 B
类型,
impl Borrow<B> for A
表示在需要 B
的地方可以使用借来的 A
。例如,std::collections::HashMap.get()
使用 Borrow
作为其 get()
方法,允许带有 A
键的 HashMap
用 &B
索引。
另一方面,std::borrow::ToOwned
实现了反向关系。
因此,使用上述类型 A
和 B
可以实现:
impl ToOwned for B
注意:虽然 A
可以为多种不同类型的 T
实现 Borrow<T>
,但 B
只能实现 ToOwned
一次。