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}