deep-clone 0.1.0

Like Clone, but bypassing structural sharing
Documentation
mod std_impls;

macro_rules! from_clone {
    ($($name:ty),*) => {
        $(
            impl crate::DeepClone for $name {
                #[must_use]
                #[inline]
                fn deep_clone(&self) -> Self {
                    ::std::clone::Clone::clone(self)
                }
            }
        )*
    };
}
pub(crate) use from_clone;

pub trait DeepClone: Sized {
    #[must_use]
    fn deep_clone(&self) -> Self;

    #[inline]
    fn deep_clone_from(&mut self, source: &Self) {
        *self = source.deep_clone()
    }
}