I have a
let x: Rc<Vec<...>>
is it possible in O(1) time to construct a
y of type
Rc<Vec<_>> that skips the first element, i.e.
y[i] = x[i+1]
y ends up having a type that is not
Rc<Vec<_>>, but supports indexing, that is fine too.
My intuition for why this should be possible is: because we have a
Rc<Vec<_>>, no one can change the underlying Vec, therefore we should be able to just do some pointer magic & skip the first element.