2
根据documentation我可以通过调用status_mut()
得到status
的可变引用。不幸的是,处理函数,用于投放与超::服务器请求的签名包含不变Response
,所以下面的代码给我一个错误:如何在超HTTP服务器处理程序中设置HTTP状态码?
pub fn handle_request(req: Request, res: Response<Fresh>){
let status: &mut StatusCode = res.status_mut();
}
error: cannot borrow immutable local variable `res` as mutable
有什么办法来设置响应状态代码的请求处理程序,由hyper :: server :: Server使用?
UPD:最后我找到了这个例子。正确的在source code。 = *)
谢谢。但还有另一个问题 - res bocme借用,当我调用status_mut()时,所以在此调用后我无法使用res。我只是尝试在处理程序中回答Response(StatusCode :: Forbidden,“Auth failed”)... – hoxnox
你不想清楚你想做什么,但是当你想限制借用边界时有一个通用方法 - 采用在花括号中创建和使用借用的代码:'{let status = res.status_mut(); status.whatever(...); }/*这里res再次可用* /'。 –