From ce0fc77acde2ca4fc915c8d96640b1429fbe6181 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 3 May 2022 20:59:29 +0100 Subject: [PATCH] size handling: Introduce OccInertLoaded This is going to contain size information. No functional change yet. Signed-off-by: Ian Jackson --- src/shapelib.rs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/shapelib.rs b/src/shapelib.rs index 63ea0410..de39aee0 100644 --- a/src/shapelib.rs +++ b/src/shapelib.rs @@ -71,7 +71,13 @@ struct OccData_Internal { outline: Outline, desc: Html, xform: FaceTransform, - svgd: lazy_init::Lazy>, + loaded: lazy_init::Lazy>, +} + +#[allow(non_camel_case_types)] +#[derive(Debug,Clone)] +struct OccInertLoaded { + svgd: Html, } #[derive(Error,Debug)] @@ -601,12 +607,15 @@ impl Contents { }, OccData::Internal(occ) => { let occ_name = occ.item_name.clone(); - let svgd = occ.svgd.get_or_create(||{ - let occ_data = self.load_svg( + let OccInertLoaded { svgd } = occ.loaded.get_or_create(||{ + let svgd = self.load_svg( occ.item_name.unnest::().unnest(), /* original: */ lib_name, name.as_str() )?; - Ok(occ_data) + let loaded = OccInertLoaded { + svgd, + }; + Ok(loaded) }).clone()?; let it = Arc::new(ItemInertForOcculted { svgd, @@ -828,7 +837,7 @@ pub fn load_catalogue(libname: &str, src: &mut dyn LibrarySource) -> Contents { item_name, outline: outline.clone(), xform: FaceTransform::from_group(&group.d)?, - svgd: default(), + loaded: default(), desc, })) }, -- 2.30.2