| Crates.io | resize_slice2 |
| lib.rs | resize_slice2 |
| version | 0.2.0 |
| created_at | 2023-01-09 05:21:55.090227+00 |
| updated_at | 2023-01-15 17:36:21.684355+00 |
| description | Resize a slice given a larger slice in safe Rust |
| homepage | |
| repository | https://github.com/benthillerkus/resize_slice |
| max_upload_size | |
| id | 754130 |
| size | 18,003 |
Enlarge and shrink slices (given a larger slice) in safe Rust.
This is done by expressing the new slice as a slice of the source slice -- this way you can also extend the lifetime to the sources lifetime.
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"]);
So a range of 1..-1 would move the start one to the right and move the end one to the left.
source: |------------------------|
slice: |-------|
result: |---|
A range of 1.. would move the start one to the right and fully expand the end.
source: |------------------------|
slice: |-------|
result: |-----------|
A range of 0..0 would return the same slice.
source: |------------------------|
slice: |-------|
result: |-------|