chiark / gitweb /
xdata: Break out xdata_missing
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 19 Mar 2021 00:36:22 +0000 (00:36 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 20:12:41 +0000 (20:12 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/gamestate.rs

index f7651498d21d2171c48cf94f3676a8d57cd07cc0..70e896f51ed57c72fda52851d90098b543d0f60d 100644 (file)
@@ -331,6 +331,14 @@ fn xdata_unexpected<T:PieceXData>(got: &dyn PieceXData) -> InternalError {
     &got, T::dummy(),
   ))
 }
+fn xdata_missing<T:PieceXData>() -> InternalError {
+  internal_logic_error(format!(
+    "\n\
+     piece xdata unexpected missing\n\
+     expected something like: {:?}\n",
+    T::dummy(),
+  ))
+}
 
 #[ext(pub)]
 impl PieceXDataState {
@@ -344,13 +352,7 @@ impl PieceXDataState {
 
   #[throws(IE)]
   fn get_exp<T:PieceXData>(&self) -> &T {
-    self.get()?
-      .ok_or_else(|| internal_logic_error(format!(
-        "\n\
-         piece xdata unexpected missing\n\
-         expected something like: {:?}\n",
-        T::dummy(),
-      )))?
+    self.get()?.ok_or_else(|| xdata_missing::<T>())?
   }
 
   fn get_mut<