在镍网络服务上,我想在响应发送完成时执行一个功能。 我在this doc上找到了'on_send'方法,但我无法构建它。
我收到此错误:
类型不匹配:类型
[closure@src/models/plugins/session.rs:78:22: 78:31 x:_]
实现特征std::ops::FnMut<()>
,但特征for<'r> std::ops::FnMut<(&'r mut nickel::Response<'_, D>,)>
是必需的(预期元组,找到())
和这一个
类型不匹配:类型
[closure@src/models/plugins/session.rs:78:22: 78:31 x:_]
实现特征std::ops::FnOnce<()>
,但特征for<'r> std::ops::FnOnce<(&'r mut nickel::Response<'_, D>,)>
是必需的(预期元组,找到())
我的代码示例是
let mut x: usize = 1;
let update = || x += 2 ;
res.on_send(update);
res
为&mut Response<'mw, D>
答案 0 :(得分:2)
我不熟悉Nickel,但错误告诉你闭包实现了特性
std::ops::FnOnce<()>
但是on_send
的参数必须是
for<'r> std::ops::FnOnce<(&'r mut nickel::Response<'_, D>,)>
如果没有完整的代码示例,很难给出一个有效的答案。但正确答案将与此类似:
let update = |_| x += 2;
您没有使用元组参数,因此您可以使用_
将其标记为未使用。但是你必须指定它,否则类型不匹配。