我有一个结构体,其字段包含对其他结构体的引用(我没有定义)
struct HtmlHandlebars {
user_helpers: Vec<(String, Box<HelperDef + 'static>)>,
}
并且HtmlHandlebars
必须实现一个功能
fn render(&self, ...) -> &self
在该功能中,我需要将 移动Box
到另一个功能。像这样的东西:
fn render(&self, ...) -> &self {
let mut handlebars = Handlebars::new();
for (name, helper) in self.user_helpers {
handlebars.register_helper(&name, helper);
}
}
但我有点卡住了,因为:
- 我无法移动 Box 引用,因为我正在借用
self
- 我无法复制 Box 引用,因为该结构没有实现复制
- 我无法修改
&self
为,&mut self
因为这会导致其他问题...
也许我做错了。我还能做些什么吗?我有哪些选择?
如果您需要更完整的代码概览,可以在此处找到
PS:我不知道如何描述标题中的情况,请随意更改