From: Ian Jackson Date: Sun, 27 Sep 2020 00:25:20 +0000 (+0100) Subject: abolish two unwraps X-Git-Tag: otter-0.2.0~873 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=58c30675741c85d728e499fe9215a084d5520db2;p=otter.git abolish two unwraps Signed-off-by: Ian Jackson --- diff --git a/src/api.rs b/src/api.rs index ea2ef9f8..2078fb2a 100644 --- a/src/api.rs +++ b/src/api.rs @@ -108,8 +108,7 @@ fn api_piece_op(form : Json>) 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) { - 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); diff --git a/src/error.rs b/src/error.rs index efb92a76..b45d88ae 100644 --- a/src/error.rs +++ b/src/error.rs @@ -136,8 +136,8 @@ impl IdForById for T where T : AccessId { } impl IdForById for PieceId { - type Error = (); - const ERROR : () = (); + type Error = OE; + const ERROR : OE = OE::PieceGone; } #[macro_export]