diff --git a/hercules_rt/src/lib.rs b/hercules_rt/src/lib.rs index c5ef5f6a601fb04304396a5e28c23c53cd020f44..ed5dca1d817f7d738a29e7c4be4a6f589a7dad41 100644 --- a/hercules_rt/src/lib.rs +++ b/hercules_rt/src/lib.rs @@ -152,12 +152,12 @@ impl<'a> HerculesCPURefMut<'a> { #[cfg(feature = "cuda")] impl<'a> HerculesCUDARef<'a> { - pub fn to_cpu_ref<T>(self, dst: &mut [T]) -> HerculesCPURef<'a> { + pub fn to_cpu_ref<'b, T>(self, dst: &'b mut [T]) -> HerculesCPURefMut<'b> { unsafe { let size = self.size; let ptr = NonNull::new(dst.as_ptr() as *mut u8).unwrap(); __copy_cuda_to_cpu(ptr.as_ptr(), self.ptr.as_ptr(), size); - HerculesCPURef { + HerculesCPURefMut { ptr, size, _phantom: PhantomData, @@ -192,12 +192,12 @@ impl<'a> HerculesCUDARefMut<'a> { } } - pub fn to_cpu_ref<T>(self, dst: &mut [T]) -> HerculesCPURef<'a> { + pub fn to_cpu_ref<'b, T>(self, dst: &mut [T]) -> HerculesCPURefMut<'b> { unsafe { let size = self.size; let ptr = NonNull::new(dst.as_ptr() as *mut u8).unwrap(); __copy_cuda_to_cpu(ptr.as_ptr(), self.ptr.as_ptr(), size); - HerculesCPURef { + HerculesCPURefMut { ptr, size, _phantom: PhantomData,