Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 如何将FnMut与Rust中的常规参数一起使用?_Generics_Rust - Fatal编程技术网

Generics 如何将FnMut与Rust中的常规参数一起使用?

Generics 如何将FnMut与Rust中的常规参数一起使用?,generics,rust,Generics,Rust,我试图定义一个FnMut签名,以允许库用户将闭包作为回调传递。闭包将被装箱并存储在结构中 回调将被赋予特定的输入参数,并且必须返回一个实现trait的结构 目前,签名定义为: new_request_session_callback: Option< Box< dyn FnMut( my::Parameters ) -> OutputSessionStruct

我试图定义一个FnMut签名,以允许库用户将闭包作为回调传递。闭包将被装箱并存储在结构中

回调将被赋予特定的输入参数,并且必须返回一个实现trait的结构

目前,签名定义为:

    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