chiark / gitweb /
abolish two unwraps
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Sep 2020 00:25:20 +0000 (01:25 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Sep 2020 00:27:29 +0000 (01:27 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/api.rs
src/error.rs

index ea2ef9f8726cb2cb3138266d7602d55cf4fa5183..2078fb2ac7612817a6cd7b6bfad985443b87ad0f 100644 (file)
@@ -108,8 +108,7 @@ fn api_piece_op<O: ApiPieceOp>(form : Json<ApiPiece<O>>)
 
   match (||{
     let p = g_pieces.get(piece).ok_or(OnlineError::PieceGone)?;
-    let pc = gs.pieces.byid_mut(piece)
-      .map_err(|()| OnlineError::PieceGone)?;
+    let pc = gs.pieces.byid_mut(piece)?;
 
     let q_gen = form.gen;
     let u_gen =
@@ -166,8 +165,8 @@ impl ApiPieceOp for ApiPieceGrab {
   fn op(&self, gs: &mut GameState, player: PlayerId, piece: PieceId,
         p: &dyn Piece, lens: &dyn Lens)
         -> (PieceUpdateOp<()>, Vec<LogEntry>) {
-    let pl = gs.players.byid(player).unwrap();
-    let pc = gs.pieces.byid_mut(piece).unwrap();
+    let pl = gs.players.byid(player)?;
+    let pc = gs.pieces.byid_mut(piece)?;
 
     if pc.held.is_some() { throw!(OnlineError::PieceHeld) }
     pc.held = Some(player);
index efb92a76a3b58f6bffb82d9a737c7978a6af816a..b45d88ae153be765ab101cffe403bca5fea974ad 100644 (file)
@@ -136,8 +136,8 @@ impl<T> IdForById for T where T : AccessId {
 }
 
 impl IdForById for PieceId {
-  type Error = ();
-  const ERROR : () = ();
+  type Error = OE;
+  const ERROR : OE = OE::PieceGone;
 }
 
 #[macro_export]