2 个版本

0.1.1 2019 年 9 月 1 日
0.1.0 2019 年 9 月 1 日

#2784 in Rust 模式

MIT 许可证

17KB
413

Build Status

disjoint-borrow

切片的独立借用。

提供了 DisjointSlice 类型,通过添加运行时检查来允许切片的独立借用。不可变借用可以与其他不可变借用相交,而可变借用则不能与任何借用相交。

借用跟踪是通过类型级别的列表实现的。这具有无需分配的优势,但也限制了独立借用的数量为编译时常量。

与无 std 兼容。

示例

use disjoint_borrow::DisjointSlice;

let mut array = [1, 2, 3, 4, 5];
let mut ds = DisjointSlice::new(&mut array);
let (mut ds, mut a) = ds.get_mut(0..2);
let (_, mut b) = ds.get_mut(3..5);

a[0] *= -1;
b[1] *= -1;

assert_eq!(a, &[-1, 2]);
assert_eq!(b, &[4, -5]);

许可证:MIT


lib.rs:

切片的独立借用。

提供了 DisjointSlice 类型,通过添加运行时检查来允许切片的独立借用。不可变借用可以与其他不可变借用相交,而可变借用则不能与任何借用相交。

借用跟踪是通过类型级别的列表实现的。这具有无需分配的优势,但也限制了独立借用的数量为编译时常量。

与无 std 兼容。

示例

use disjoint_borrow::DisjointSlice;

let mut array = [1, 2, 3, 4, 5];
let mut ds = DisjointSlice::new(&mut array);
let (mut ds, mut a) = ds.get_mut(0..2);
let (_, mut b) = ds.get_mut(3..5);

a[0] *= -1;
b[1] *= -1;

assert_eq!(a, &[-1, 2]);
assert_eq!(b, &[4, -5]);

无运行时依赖