borrow-asref
(6 封私信) Rust的Borrow和AsRef:让你的代码用起来像呼吸一样自然 - 知乎
Borrow:强调逻辑一致的借用
Borrow的功能就像它的名字一样:借用。它需要实现者提供一个borrow方法的实现:
pub trait Borrow<Borrowed>
where
Borrowed: ?Sized,
{
// Required method
fn borrow(&self) -> &Borrowed;
}
Rust 自带 instance (forall T: type): Borrow<T>
Borrow 要在 Eq,Ord,Hash 下同构!这也就是说,如果 x==y,那么x.borrow()==y.borrow()也一定要成立!