From: Ian Jackson Date: Tue, 30 Mar 2021 22:37:45 +0000 (+0100) Subject: ReportViaResponse: Provide and use From X-Git-Tag: otter-0.5.0~360 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=2cd570ab1b379f942db81571f78c7cbd41ae8d58;p=otter.git ReportViaResponse: Provide and use From Signed-off-by: Ian Jackson --- diff --git a/src/clock.rs b/src/clock.rs index 36a44932..bed54213 100644 --- a/src/clock.rs +++ b/src/clock.rs @@ -616,8 +616,7 @@ impl PieceTrait for Clock { let gpc = gs.pieces.byid_mut(piece)?; let held = gpc.held; let gpl = gs.players.byid(player)?; - let state: &mut State = gpc.xdata_mut_exp() - .map_err(|e| APOE::ReportViaResponse(e.into()))?; + let state: &mut State = gpc.xdata_mut_exp()?; let get_user = || opname.chars().next_back().unwrap().try_into().unwrap(); enum Howish { @@ -683,8 +682,7 @@ impl PieceTrait for Clock { }; state.do_start_or_stop(piece, was_current, was_implied_running, - held, &self.spec, ig) - .map_err(|e| APOE::ReportViaResponse(e.into()))?; + held, &self.spec, ig)?; let log = log_did_to_piece(ioccults,&gs.occults, gpl, gpc, ipc, &did) .unwrap_or_else(|e| { diff --git a/src/deck.rs b/src/deck.rs index e5e7e6f1..80c15fc1 100644 --- a/src/deck.rs +++ b/src/deck.rs @@ -172,10 +172,7 @@ impl PieceTrait for Deck { dbgc!("ui op k entry", &opname); - let err_via_response = - |ie:IE| ApiPieceOpError::ReportViaResponse(ie.into()); - - let old_state = self.state(gpc, &goccults).map_err(err_via_response)?; + let old_state = self.state(gpc, &goccults)?; let (new_state, did) = match opname { "activate" => (Enabled, hformat!("enabled {}", CORE_DESC)), @@ -198,7 +195,7 @@ impl PieceTrait for Deck { let views = UniformOccultationView(new_view).views()?; Ok::<_,IE>((region, views)) }) - .transpose().map_err(err_via_response)?; + .transpose()?; let mut xupdates = vec![]; @@ -210,8 +207,7 @@ impl PieceTrait for Deck { xupdates.extend( remove_occultation(&mut gen.unique_gen(), gplayers, gpieces, goccults, ipieces, ioccults, - to_recalculate, piece) - .map_err(|ie| ApiPieceOpError::ReportViaResponse(ie.into()))? + to_recalculate, piece)? ); } diff --git a/src/error.rs b/src/error.rs index 20f2fc78..06edb0be 100644 --- a/src/error.rs +++ b/src/error.rs @@ -136,6 +136,11 @@ impl From for ApiPieceOpError { ApiPieceOpError::ReportViaResponse(x.into()) } } +impl From for ApiPieceOpError { + fn from(x: InternalError) -> ApiPieceOpError { + ApiPieceOpError::ReportViaResponse(x.into()) + } +} #[derive(Error,Debug,Serialize,Clone)] pub enum ErrorSignaledViaUpdate { diff --git a/src/hand.rs b/src/hand.rs index 08227bae..ead22028 100644 --- a/src/hand.rs +++ b/src/hand.rs @@ -218,8 +218,7 @@ impl PieceTrait for Hand { let goccults = &mut gs.occults; let gpc = gpieces.byid_mut(piece)?; - let xdata = gpc.xdata.get_mut::(default) - .map_err(|e| APOE::ReportViaResponse(e.into()))?; + let xdata = gpc.xdata.get_mut::(default)?; let old_desc = self.sort.describe_html_inner(Some(xdata)); let old_player = xdata.player(); @@ -255,7 +254,7 @@ impl PieceTrait for Hand { }.views()?; dbgc!("claiming got region", ®ion, &views); Ok::<_,IE>((region, views)) - })().map_err(|ie| ApiPieceOpError::ReportViaResponse(ie.into()))?; + })()?; // actually do things: dbgc!("creating occ"); @@ -278,8 +277,7 @@ impl PieceTrait for Hand { Some(_) => remove_occultation(&mut gen.unique_gen(), gplayers, gpieces, goccults, ipieces, ioccults, - to_recalculate, piece) - .map_err(|ie| ApiPieceOpError::ReportViaResponse(ie.into()))?, + to_recalculate, piece)?, }; (None, xupdates, hformat!("deactivated {}", &old_desc)) }