Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
self.xdata.get_mut(def)?
}
+ #[throws(IE)]
+ pub fn xdata_mut_exp<
+ T: PieceXData,
+ >(&mut self) -> &mut T {
+ self.xdata.get_mut_exp()?
+ }
+
pub fn dummy() -> Self {
let gen_dummy = Generation(1);
GPiece {
let xdata = self.get_or_insert_with(|| Box::new(def()));
xdata_get_mut_inner(xdata)
}
+
+ fn get_mut_exp<
+ T: PieceXData,
+ >(&mut self) -> Result<&mut T, IE> {
+ let xdata = self.as_mut().ok_or_else(|| xdata_missing::<T>())?;
+ xdata_get_mut_inner(xdata)
+ }
}
fn xdata_get_mut_inner<