Vector 如何用间接的方法来缓和锈迹?

Vector 如何用间接的方法来缓和锈迹?,vector,rust,closures,traits,lifetime,Vector,Rust,Closures,Traits,Lifetime,我一直在尝试实现一个简单的作业调度程序。我有两种作业类型:异步作业和同步作业。它们有一个名为context的属性,它只是一个函数。我也在存储日期属性 所以问题是,当我试图编写一个调度程序时,它显示了以下错误 编译时无法知道'dyn Fn()'类型的值的大小 没有为'dyn Fn()`rustc(E0277)实现特征'Sized' sync_job.rs(6,23):此绑定在'sync_job::SyncJob'中是必需的` sync_job.rs(6,23):如果通过像`&L`或`'Box这样的

我一直在尝试实现一个简单的作业调度程序。我有两种作业类型:异步作业和同步作业。它们有一个名为context的属性,它只是一个函数。我也在存储日期属性

所以问题是,当我试图编写一个调度程序时,它显示了以下错误

编译时无法知道'dyn Fn()'类型的值的大小
没有为'dyn Fn()`rustc(E0277)实现特征'Sized'
sync_job.rs(6,23):此绑定在'sync_job::SyncJob'中是必需的`
sync_job.rs(6,23):如果通过像`&L`或`'Box这样的间接方式使用,那么可以放松`'L`上的隐式`size`绑定`
我创建了SyncJob结构,如下所示:

pub-struct-SyncJob
哪里
T:chrono::Datelike,
L:Fn(),
{
酒吧预定:选项,
酒吧背景:L,
酒吧:布尔,
酒吧重复次数:u32
}
得到的调度程序如下所示:


发布结构计划程序>
}

恳求Scheduler@justinas不幸的是,没有。我从未见过这个编译器提示,它似乎是添加的。我存储了这个问题的第二个答案所暗示的结束。我现在明白了。问题是,您定义了
L:Fn()+'static+Sized
,并尝试用
dyn Fn()+Sized
替换
L
。但与
&dynt
Box
不同,
dynt
始终未调整大小。A将非常有助于回答您的问题。简短的回答是,您正试图获得一个
Vec
,这是不可能的。您可能应该改为使用
Vec
。@justinas不幸的是,没有。我从未见过这个编译器提示,它似乎是添加的。我存储了这个问题的第二个答案所暗示的结束。我现在明白了。问题是,您定义了
L:Fn()+'static+Sized
,并尝试用
dyn Fn()+Sized
替换
L
。但与
&dynt
Box
不同,
dynt
始终未调整大小。A将非常有助于回答您的问题。简短的回答是,您正试图获得一个
Vec
,这是不可能的。您可能应该改用
Vec