2 个版本
| 0.1.1 | 2020年8月13日 |
|---|---|
| 0.1.0 | 2020年8月13日 |
#19 in #borrowed
每月下载 32 次
用于 2 个包 (通过 mtots_core)
9KB
200 行
XRef 和 XRefMut
当你想返回可能属于或借用的一些数据时,通常返回 Cow<T>。
但是,Cow<T> 有以下限制
T必须是ToOwned,并且- 如果你想要借用的数据在
RefCell后面,则不能这样做。
XRef<T> 类似于 Cow<T>,但通过以下差异解决了上述限制:
T不必是ToOwned,(这意味着现在Borrowed和Owned中包含的类型必须完全匹配),并且XRef<T>有一个第三个变体Ref,它持有std::cell::Ref<T>,用于从RefCell借用值的情况。
XRefMut<T> 类似于 XRef<T>,除了
- 所有引用都是可变借用的(即
XRef::Borrowed持有一个&mut T而不是&T,XRef::Ref持有一个RefMut<T>而不是Ref<T>), XRefMut<T>实现DerefMut<T>,以允许在不克隆的情况下可变借用数据。