pub trait Dupe: Clone { fn dupe(&self) -> Self { ... } }
Like Clone, but should only be available if Clone is constant time and zero allocation (e.g. a few Arc bumps). The implementation of dupe should always call clone.
Clone
Arc
dupe
clone