chiark / gitweb /
hidden prep: api_wrest: Reorganise borrows
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 31 Jan 2021 21:18:48 +0000 (21:18 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 31 Jan 2021 22:21:44 +0000 (22:21 +0000)
 * Borrow gs.players separately.
 * Borrow gpl mut.
 * Change the order of things.

We'll want this in a moment.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/api.rs

index 08dd25ce0bfa241ef66778c0f94c4e56d22f5ec8..437801a7a99c89a4018dd64269920ff57455c726 100644 (file)
@@ -249,14 +249,16 @@ api_route!{
   #[throws(ApiPieceOpError)]
   fn op(&self, a: ApiPieceOpArgs) -> PieceUpdate {
     let ApiPieceOpArgs { gs,player,piece,p,lens, .. } = a;
-    let gpl = gs.players.byid(player)?;
     let pc = gs.pieces.byid_mut(piece)?;
+    let players = &mut gs.players;
+    let was = pc.held;
+    let was = was.and_then(|p| players.get(p));
+    let was = was.map(|was| htmlescape::encode_minimal(&was.nick));
+
+    let gpl = players.byid_mut(player)?;
     let pcs = p.describe_pri(&lens.log_pri(piece, pc)).0;
 
-    let was = pc.held;
     pc.held = Some(player);
-    let was = was.and_then(|p| gs.players.get(p));    
-    let was = was.map(|was| htmlescape::encode_minimal(&was.nick));
 
     let update = PieceUpdateOp::Modify(());