1 个不稳定版本
0.1.0 | 2023 年 8 月 7 日 |
---|
#2505 在 Rust 模式
9KB
107 行
借款牺牲
通过结合安全和不可安全牺牲来使借款检查器满意。 此 crate 主要处理借款检查器的限制,不应用于创建段错误。
在遍历切片时访问“其余元素”
可分割 trait 被提供,以促进在遍历同一容器中所有其他元素的同时修改容器元素的一种常见模式,如下面的伪代码示例所示
let mut x = [1,2,3];
let hero = &mut x[1];
for (i,elem) in x.iter_mut().enumerate()
{
if i == 1 {continue}
if elem > hero{
*hero = 0;
}
else{
*elem = 0;
}
}
可分割 trait 允许进行类似于 split_at_mut()
的操作,但更适合于促进这种用途。
生命周期扩展
在创建可变迭代器时,有一个常见的技巧,通常需要使借款检查器承认将元素在 next() 中提供的可变引用实际上是安全的。 lifetime_detach()
允许用户进行通常的“扩展生命周期”仪式,全部封装在一个漂亮的泛型包中。这也使得使用 duplicate! 宏一次创建可变和不可变迭代器变得更加容易。
稳定性,贡献
欢迎 PR,但请将范围限制在与借款检查技巧相关的事物上,而不是“与内存相关的一切”。
你可能还想做的其他类似的事情
还可以检查这些 crates 以获取更多类似功能