#reference #smart-pointers #library #distributive-law

no-std multiref

多引用:安全地进行 [&T] -> &[T] 的转换

1 个不稳定版本

0.1.2 2020 年 10 月 27 日
0.1.1 2020 年 7 月 12 日
0.1.0 2020 年 7 月 7 日

#2685 in Rust 模式


smart_access 中使用

MIT 许可证

17KB
94

crate docs

Rust 的多引用

允许安全地从 [&T] 转换到 (类似) &[T],而不需要复制任何内容。

更准确地说

该软件包提供了两个辅助类型 SlicePair,允许以下转换

逆分配律

  • &'a [&'x T] -> &'a Slice<T> (及其可变等效物)
  • &'a (&'x A, &'x B) -> &'a Pair<A, B> (及其可变等效物)

前分配律

  • &'a Slice<T> -> &'a [&'a T] (及其可变等效物)
  • &'a Pair<A, B> -> &'a (&'a A, &'a B) (及其可变等效物)

用途是什么?

将生命周期从类型表达式的深处移动到其头部附近。

这种操作在以cps为主的代码中可能很有用。

详细信息

这里

用法

只需在您的

multiref = "0.1"

Cargo.toml中包含

该软件包不使用任何std库,并具有#![no_std]属性。

类似的软件包

有一个同名软件包multi_mut。它允许从std::collections映射中提取多个不重叠的可变引用。

然而,它与分配律无关。

版本

  • 0.1.2:修复了与元组的正确性问题
  • 0.1.1:对元组和“切片”的modify方法。
  • 0.1.0:初始版本。

无运行时依赖