借用 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 一次。