#slice #resize #safe #larger #source #slice2 #resize-slice

resize_slice2

在安全的Rust中,根据更大的切片来调整切片大小

4个版本

0.2.0 2023年1月15日
0.1.2 2023年1月9日
0.1.1 2023年1月9日
0.1.0 2023年1月9日

Rust模式 中排名第 2787

MIT 许可证

17KB
266

license: MIT build status docs crate version

调整切片(2)

在安全的Rust中,根据更大的切片来增大和缩小切片。

这是通过将新切片表示为源切片的切片来完成的——这样也可以将生命周期扩展到源的生命周期。

示例

use resize_slice2::ResizeSlice;
let source = &["a", "b", "c", "d", "e", "f"];
let slice = &source[1..4];
assert_eq!(slice, &["b", "c", "d"]);
let resized = slice.try_resize(source, 0..1).unwrap();
assert_eq!(resized, &["b", "c", "d", "e"]);

所以一个范围为 1..-1 的范围会将开始向右移动一个位置,将结束向左移动一个位置。

source: |------------------------|
slice:             |-------|
result:              |---|

一个范围为 1.. 的范围会将开始向右移动一个位置,并将结束完全展开。

source: |------------------------|
slice:             |-------|
result:              |-----------|

一个范围为 0..0 的范围将返回相同的切片。

source: |------------------------|
slice:            |-------|
result:           |-------|

依赖关系

~150KB