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再次可用* /'。 –