【问题标题】:How to clone a struct which holds a trait object to a `Fn`如何将包含特征对象的结构克隆到`Fn`
【发布时间】:2021-04-16 13:23:03
【问题描述】:

我有以下结构:

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

克隆派生失败,因为盒子不是Clone,但我没有办法制作Fn Clone,有没有办法解决这个问题?我需要克隆的原因是我有时会绕过&amp;[MyStruct] 并且需要使用.to_vec() 克隆来拥有...

【问题讨论】:

    标签: rust clone traits


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2016-04-01
      • 1970-01-01
      相关资源
      最近更新 更多