Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
self.xdata.get()?
}
+ #[throws(IE)]
+ pub fn xdata_exp<T:PieceXData>(&self) -> &T {
+ self.xdata.get_exp()?
+ }
+
#[throws(IE)]
pub fn xdata_mut<
T: PieceXData,
else { throw!(xdata_unexpected::<T>(xdata)) }
}
+ #[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(),
+ )))?
+ }
+
fn get_mut<
T: PieceXData,
D: FnOnce() -> T,