如何将包含特征对象的结构克隆到`Fn`

时间:2021-04-16 13:23:03

标签: rust clone traits

我有以下结构:

#[derive(Clone)]
pub struct MyStruct {
  function : Box<dyn Fn(Box<dyn Any>) -> Box<dyn Any> + Send + Sync>,
  [...]
}

克隆推导失败,因为盒子不是 Clone 但我没有办法制作 Fn Clone,有没有办法解决这个问题?我需要克隆的原因是我有时会传递 &[MyStruct] 并且需要使用 .to_vec()...

克隆以拥有它

1 个答案:

答案 0 :(得分:2)

简单的答案:将 Box(单一所有者指针)切换为 RcArc(可共享指针)

相关问题