From f7c6629429ec5bbebacce04658cff0a432f7b1fe Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 13 Feb 2021 11:20:09 +0000 Subject: [PATCH] Change SimplePieceSpec::load_raw This gives the Common back now Signed-off-by: Ian Jackson --- src/pieces.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) 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) } } -- 2.30.2