deep_clone/
lib.rs

1mod std_impls;
2
3macro_rules! from_clone {
4    ($($name:ty),*) => {
5        $(
6            impl crate::DeepClone for $name {
7                #[must_use]
8                #[inline]
9                fn deep_clone(&self) -> Self {
10                    ::std::clone::Clone::clone(self)
11                }
12            }
13        )*
14    };
15}
16pub(crate) use from_clone;
17
18pub trait DeepClone: Sized {
19    #[must_use]
20    fn deep_clone(&self) -> Self;
21
22    #[inline]
23    fn deep_clone_from(&mut self, source: &Self) {
24        *self = source.deep_clone()
25    }
26}