向其他参与者发送相同的消息,而不在Actix/Rust中克隆

向其他参与者发送相同的消息,而不在Actix/Rust中克隆,rust,rust-actix,actix-web,Rust,Rust Actix,Actix Web,我需要向其他参与者发送相同的消息对象。每次克隆它的成本都非常高。事实上,这是不必要的。我得到了预期的错误。“在循环的上一次迭代中,值移到了这里” 使用&传递参数无效。我无法使用弱/Arc引用。Actix似乎不支持它(弱/Arc消息) 这怎么可能是本案的最佳解决方案 让myMessageObject:MyMessageType=MyMessageType{}; 对于self.users.iter()中的用户{ user.Addr.do_send(myMessageObject); } 用户的imp

我需要向其他参与者发送相同的消息对象。每次克隆它的成本都非常高。事实上,这是不必要的。我得到了预期的错误。“在循环的上一次迭代中,值移到了这里”

使用&传递参数无效。我无法使用
/
Arc
引用。Actix似乎不支持它(弱/Arc消息)

这怎么可能是本案的最佳解决方案

让myMessageObject:MyMessageType=MyMessageType{};
对于self.users.iter()中的用户{
user.Addr.do_send(myMessageObject);
}
用户的impl处理程序{
类型结果=();
fn句柄(&mut self,setStartMessage:MyMessageType,ctx:&mut ws::WebsocketContext){
}
}

您可以使用内部模式,构建消息取决于您的逻辑。因此,我们会有成本。我梦想零成本。谢谢..我提出的解决方案与Actix的
Arc
支持没有什么不同(在成本方面大致相同)。顺便说一句,我不确定零成本,但我认为这是不可能的。我以为你在试图避免克隆大型集合,也许你应该编辑问题以强调零成本问题。你可以使用内部模式,构建消息取决于你的逻辑。因此,我们将有成本。我梦想零成本。谢谢..我提出的解决方案与Actix的
Arc
支持没有什么不同(在成本方面大致相同)。顺便说一句,我不确定零成本,但我认为这是不可能的。我以为你在试图避免克隆大型藏品,也许你应该编辑这个问题来强调零成本问题。