Make elements of an array or a vector movable with some simple magic.
Move elements of a vector an array.
use moving::move_vec_to_array;
let v = vec![0, 1, 2, 3, 4]; // 5 items
let arr = move_vec_to_array::<i16, 5>(v).unwrap();
assert_eq!(arr, [0, 1, 2, 3, 4]);To make elements of an array or a vector movable, while the size is unknown, use movable:
use moving::{ MovableVec, movable };
let v = vec![0, 1, 2, 3, 4]; // 5 items
let arr = [0, 1, 2, 3, 4];
let mvv: MovableVec<i32> = movable(v);
let mvv_arr: MovableVec<i32> = movable(arr);Alternatively, you can use ToMovable:
use moving::ToMovable;
some_vec.to_movable();
some_arr.to_movalbe();To make elements of an array or a vector movable, while the size is known, use nmovable (notice the prefix "n"):
use moving::{ MovableArray, nmovable};
let v = vec![0, 1, 2, 3, 4]; // 5 items
let arr = [0, 1, 2, 3, 4];
let mvv: MovableArray<i32, 5> = nmovable(v).unwrap();
let mvv_arr: MovableArray<i32, 5> = nmovable(arr).unwrap();Alternatively, you can use ToNMovable:
use moving::ToNMovable;
some_vec.to_nmovable()?;
some_arr.to_nmovable()?;