XRef and XRefMut

When you want to return some data that might be either owned or borrowed, it is common to return a Cow<T>.

However, Cow<T> has the following limitations:

XRef<T> is like Cow<T>, except addresses the above limitations with the following differences:

XRefMut<T> is like XRef<T> except that