I am working on some software where I am managing a buffer of floats in a Vec<T>
where T
is either an f32
or f64
. I sometimes need to interpret this buffer, or sections of it, as a mathematical vector. To this end, I am taking advantage of MatrixSlice
and friends in nalgebra
.
I can create a DVectorSliceMut
, for example, the following way
fn as_vector<'a>(slice: &'a mut [f64]) -> DVectorSliceMut<'a, f64> {
DVectorSliceMut::from(slice)
}
However, sometimes I need to later extract the original slice from the DVectorSliceMut
with the original lifetime 'a
. Is there a way to do this?
The StorageMut
trait has a as_mut_slice
member function, but the lifetime of the returned slice is the lifetime of the reference to the Storage
implementor, not the original slice. I am okay with a solution which consumes the DVectorSliceMut
if necessary.
Update: Methods into_slice
and into_slice_mut
have been respectively added to the SliceStorage
and SliceStorageMut
traits as of nalgebra
v0.28.0.
Methods into_slice
and into_slice_mut
which return the original slice have been respectively added to the SliceStorage
and SliceStorageMut
traits as of nalgebra
v0.28.0.