最佳答案
在 C/C + + 中,我通常使用一个简单的函数指针进行回调,也许还会传递一个 void* userdata
参数:
typedef void (*Callback)();
class Processor
{
public:
void setCallback(Callback c)
{
mCallback = c;
}
void processEvents()
{
//...
mCallback();
}
private:
Callback mCallback;
};
在 Rust 中这样做的惯用方法是什么?具体来说,我的 setCallback()
函数应该采用什么类型,mCallback
应该是什么类型?应该用 Fn
吗?也许是 FnMut
?我保存它 Boxed
?举个例子就好了。