#refcell #borrowed #owned #reference #value #x-ref-mut #to-owned

xref

类似于 Cow,但也与 RefCell 一起工作

2 个版本

0.1.1 2020年8月13日
0.1.0 2020年8月13日

#19 in #borrowed

每月下载 32
用于 2 个包 (通过 mtots_core)

Apache-2.0

9KB
200

XRef 和 XRefMut

当你想返回可能属于或借用的一些数据时,通常返回 Cow<T>

但是,Cow<T> 有以下限制

  • T 必须是 ToOwned,并且
  • 如果你想要借用的数据在 RefCell 后面,则不能这样做。

XRef<T> 类似于 Cow<T>,但通过以下差异解决了上述限制:

  • T 不必是 ToOwned,(这意味着现在 BorrowedOwned 中包含的类型必须完全匹配),并且
  • XRef<T> 有一个第三个变体 Ref,它持有 std::cell::Ref<T>,用于从 RefCell 借用值的情况。

XRefMut<T> 类似于 XRef<T>,除了

  • 所有引用都是可变借用的(即 XRef::Borrowed 持有一个 &mut T 而不是 &TXRef::Ref 持有一个 RefMut<T> 而不是 Ref<T>),
  • XRefMut<T> 实现 DerefMut<T>,以允许在不克隆的情况下可变借用数据。

没有运行时依赖