1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
macro_rules! extends { ($child:ty => $parent:ty, $($member:ident),*) => { paste::paste! { impl From<$child> for $parent { fn from(child: $child) -> Self { Self { $( [<$member:snake>]: child.[<$member:snake>], )* } } } } }; } pub(crate) use extends;