我正在开发一些软件,我在其中管理一个浮动缓冲区,Vec<T>其中T是 anf32或f64. 我有时需要将此缓冲区或其中的部分解释为数学向量。为此,我正在MatrixSlice和朋友们在nalgebra.
我可以创建一个DVectorSliceMut,例如,以下方式
fn as_vector<'a>(slice: &'a mut [f64]) -> DVectorSliceMut<'a, f64> {
DVectorSliceMut::from(slice)
}
但是,有时我需要稍后从DVectorSliceMut具有原始生命周期的 中提取原始切片'a。有没有办法做到这一点?
StorageMuttrait 有一个as_mut_slice成员函数,但返回切片的生命周期是对Storage实现者的引用的生命周期,而不是原始切片的生命周期。DVectorSliceMut我可以接受必要时消耗的解决方案。
更新:从v0.28.0开始,方法into_slice和into_slice_mut已分别添加到SliceStorage和SliceStorageMut特征中。nalgebra