Generics 如何将FnMut与Rust中的常规参数一起使用?
我试图定义一个FnMut签名,以允许库用户将闭包作为回调传递。闭包将被装箱并存储在结构中 回调将被赋予特定的输入参数,并且必须返回一个实现trait的结构 目前,签名定义为:Generics 如何将FnMut与Rust中的常规参数一起使用?,generics,rust,Generics,Rust,我试图定义一个FnMut签名,以允许库用户将闭包作为回调传递。闭包将被装箱并存储在结构中 回调将被赋予特定的输入参数,并且必须返回一个实现trait的结构 目前,签名定义为: new_request_session_callback: Option< Box< dyn FnMut( my::Parameters ) -> OutputSessionStruct
new_request_session_callback: Option<
Box<
dyn FnMut(
my::Parameters
) -> OutputSessionStruct
+ 'static,
>,
new\u request\u session\u回调:选项<
盒子<
dyn FnMut(
my::参数
)->输出会话结构
+"静态,,
>,
我想修改此签名,以便它接受实现特定SessionTrait的任何输出结构。我该怎么做?dyn SessionTrait怎么样?由于实际的返回类型在这种情况下不能是静态的,因此您还需要对闭包的返回类型进行动态分派。无论如何,这是这种情况下的默认设置。当然应该是
->Box
。那么->dyn SessionTrait
呢?由于实际的返回类型在这种情况下不能是静态的,因此您还需要对闭包的返回类型进行动态分派。无论如何,这是这种情况下的默认设置。当然应该是->Box
。