2 个不稳定版本
0.2.0 | 2020 年 9 月 15 日 |
---|---|
0.1.0 | 2020 年 9 月 14 日 |
在 Rust 模式 中排名 #2960
11KB
81 行
take_ref
take_ref
提供了 TakeRef
、TakeSlice
和 TakeString
特性,这些特性允许将引用/切片和值互换处理。它们可以被视为引用/切片。您可以在需要时仅通过克隆来获取其内部值的所有权。
示例
示例 take_slice
可以接受 &[i64]
和 Vec
实例,并在最终决定需要获取 Vec
的所有权之前多次引用它们。此时,如果它是 &[i64]
,则会从 &[i64]
构造一个 Vec
。另一方面,如果它是 Vec
,则所有权将直接转移,无需开销。
use take_ref::TakeSlice;
fn take_slice(value: impl TakeSlice<i64>) {
value.as_slice();
value.as_slice();
value.take();
}
lib.rs
:
take_ref
take_ref 提供了 TakeRef
、TakeSlice
和 TakeString
特性,以使值及其引用/切片类型在需要获取所有权之前可以互换处理。如果有时需要有时不需要获取所有权,这可以消除始终从引用类型复制数据的需求。