#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![allow(dead_code)] use std::marker::PhantomData; struct Slice<'a, T> { start: *const T, end: *const T, phantom: PhantomData<&'a T>, } fn borrow_vec(vec: &Vec) -> Slice<'_, T> { let ptr = vec.as_ptr(); Slice { start: ptr, end: unsafe { ptr.add(vec.len()) }, phantom: PhantomData, } } fn main() {}