With this Rust macro...
#[macro_export]
macro_rules! box_dyn_clone {
($vis:vis, $name:ident, $t:ident) => {
#[doc = "Cloneable `Iterator` trait"]
$vis trait $name {
#[doc = "Clones `Box`"]
fn box_dyn_clone(&self) -> Box;
}
impl $name for T
where
T: 'static + $t + Clone,
{
fn box_dyn_clone(&self) ->