在C/C++中,我通常使用普通函数指针进行回调,也可以传递一个void* userdata参数.像这样的东西:
typedef void (*Callback)();
class Processor
{
public:
void setCallback(Callback c)
{
mCallback = c;
}
void processEvents()
{
for (...)
{
...
mCallback();
}
}
private:
Callback mCallback;
};
Run Code Online (Sandbox Code Playgroud)
在Rust中这样做的惯用方法是什么?具体来说,我的setCallback()功能应该mCallback采用什么类型,应该是什么类型?它需要Fn吗?也许FnMut?我保存Boxed吗?一个例子是惊人的.