问题描述
对于背景上下文:我正在创建一个基于观察者/订阅者的全局事件系统(使用单个共享事件系统)。我决定使用FnMut
作为回调闭包。置于临时结构'a
的{{1}}上的生存期impl
应该使方法Data<'a>
中的callback
参数能够生存到整个{{ 1}}结构。因为mut_func()
参数使用Data
泛型,所以它肯定受生存期callback
约束。但是错误仍然出现,表明F
参数的寿命不足。
我最初使用'a
作为callback
的容器,但是Box<T>
要求回调为dyn FnMut(u32)
(因为我将装箱的泛型转换为一个盒子特质对象)(在我的情况下是无法实现的(出于可读性考虑)。然后,我尝试使用Box<T>
,但不幸的是它不支持特征对象。
此外,我正在对'static
参数使用泛型,因为我希望该函数具有更高的可读性,而不必看到Rc<RefCell<T>>
会包裹整个 的闭包随处可见,因为此事件系统将成为我程序的中心部分。我将尽一切努力使“前端”更具可读性和简洁性(对性能的重大影响除外)。
注意:这是我的示例程序。如果需要,我可以发布实际程序。
错误:
callback
示例:
Box<T>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)