From: Ian Jackson Date: Sat, 13 Feb 2021 11:20:09 +0000 (+0000) Subject: Change SimplePieceSpec::load_raw X-Git-Tag: otter-0.4.0~519 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=f7c6629429ec5bbebacce04658cff0a432f7b1fe;p=otter.git Change SimplePieceSpec::load_raw This gives the Common back now Signed-off-by: Ian Jackson --- diff --git a/src/pieces.rs b/src/pieces.rs index c0c02d10..ba314a6d 100644 --- a/src/pieces.rs +++ b/src/pieces.rs @@ -6,6 +6,8 @@ use crate::imports::*; +use piece_specs::SimpleCommon; + type ColourMap = IndexVec; type SE = SVGProcessingError; @@ -212,23 +214,23 @@ impl SimpleShape { } trait SimplePieceSpec { - fn load_simple(&self) -> Result; + fn load_raw(&self) -> Result<(SimpleShape, &SimpleCommon), SpecError>; fn load(&self) -> Result, SpecError> { - Ok(Box::new(self.load_simple()?)) + Ok(Box::new(self.load_raw()?.0)) } } impl SimplePieceSpec for piece_specs::Disc { #[throws(SpecError)] - fn load_simple(&self) -> SimpleShape { + fn load_raw(&self) -> (SimpleShape, &SimpleCommon) { let outline = shapelib::Circle { diam: self.diam as f64 }; - SimpleShape::new( + (SimpleShape::new( Html::lit("disc"), svg_circle_path(self.diam as f64)?, Box::new(outline), "simple-disc", &self.common, - )? + )?, &self.common) } } @@ -251,15 +253,15 @@ impl piece_specs::Square { impl SimplePieceSpec for piece_specs::Square { #[throws(SpecError)] - fn load_simple(&self) -> SimpleShape { + fn load_raw(&self) -> (SimpleShape, &SimpleCommon) { let outline = shapelib::Square { xy: self.xy()?.map(|v| v as f64) }; - SimpleShape::new( + (SimpleShape::new( Html::lit("square"), svg_rectangle_path(self.xy()?.promote())?, Box::new(outline), "simple-square", &self.common, - )? + )?, &self.common) } }