reorderSlice
Parameters
- T:type
- type
- slice:[]T
- []T
- removed_idx:usize
- usize
- insert_before_idx:usize
- usize
Source
Implementation
pub fn reorderSlice(comptime T: type, slice: []T, removed_idx: usize, insert_before_idx: usize) void {
const ri = removed_idx;
const ibi = insert_before_idx;
const removed = slice[ri];
if (ri < ibi) {
// moving down, shift others up
for (ri..ibi - 1) |i| {
slice[i] = slice[i + 1];
}
slice[ibi - 1] = removed;
} else {
// moving up, shift others down
for (ibi..ri, 0..) |_, i| {
slice[ri - i] = slice[ri - i - 1];
}
slice[ibi] = removed;
}
}