entlehnt Ich habe einen Endpunkt in Rust mit nickel.rs geschrieben:kann nicht leihen `* request` als wandelbar, weil es auch als unveränderlich
{
let client = client.clone();
let mongodb = MongoRepository::new(client,"rust-users".into());
router.put("https://stackoverflow.com/users/:id",middleware!( |request ,mut response |{
let id = try_with!(response,{request.param("id").ok_or((StatusCode::BadRequest, "Id parameter required")) });
let user = try_with!(response,{request.json_as::<User>()
.map_err(|e| (StatusCode::BadRequest, format!("{}",e)))});
let update_id = try_with!(response,{mongodb.update_by_id("users",id,user)
.map_err(|e| (StatusCode::InternalServerError, e))});
ApiResult::Ok(StatusCode::Ok,update_id.to_json())
}));
}
In dieser Zeile:
let id = try_with!(response,{request.param("id").ok_or((StatusCode::BadRequest, "Id parameter required")) });
request
ist in einem unveränderlichen Zustand geliehen, aber in dieser Zeile:
let user = try_with!(response,{request.json_as::<User>()
.map_err(|e| (StatusCode::BadRequest, format!("{}",e)))});
Anfrage ist in einem veränderlichen sta ausgeliehen te. Dies führt zu den folgenden Fehler:
error: cannot borrow
*request
as mutable because it is also borrowed as immutable
Ich habe versucht, diesen Fehler zu beheben, indem Sie die id
Linie in einem separaten Rahmen Einwickeln aber das Problem blieb.
Ich bin mir nicht sicher, wie sonst das Problem zu beheben. Gibt es noch etwas, das mit dem Code nicht stimmt?
Durch Versuch und Irrtum habe ich endlich meinen Fehler herausgefunden. Danke für die Antwort :) – menawi