chiark / gitweb /
shapelib refactoring: Make OccData an enum
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 22 Mar 2021 01:52:08 +0000 (01:52 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 22 Mar 2021 01:59:41 +0000 (01:59 +0000)
But we want to transpose with the Arc

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/shapelib.rs

index 60fa6ab76cc549ecfff2b74bd515cee1ba189c70..c6708830103d824d7ba42c8af8ac672c7225d08a 100644 (file)
@@ -51,7 +51,13 @@ struct ItemData {
 }
 
 #[derive(Debug)]
-struct OccData {
+enum OccData {
+  Internal(OccData_Internal),
+}
+
+#[allow(non_camel_case_types)]
+#[derive(Debug)]
+struct OccData_Internal {
   item_name: Arc<String>,
   outline: Outline,
   desc: Html,
@@ -385,9 +391,9 @@ impl Contents {
     }
     faces.shrink_to_fit();
 
-    let occultable = match &idata.occ {
+    let occultable = match idata.occ.as_ref().map(Deref::deref) {
       None => None,
-      Some(occ) => {
+      Some(OccData::Internal(occ)) => {
         let name = occ.item_name.clone();
         let svgd = {
           let mut svgd = occ.svgd.lock();
@@ -574,13 +580,13 @@ fn load_catalogue(libname: &str, dirname: &str, toml_path: &str) -> Contents {
           if ! group.d.colours.contains_key(colour.as_str()) {
             throw!(LLE::OccultationColourMissing(colour.clone()));
           }
-          Some(Arc::new(OccData {
+          Some(Arc::new(OccData::Internal(OccData_Internal {
             item_name: Arc::new(subst(&item_name, "_c", &colour)?),
             desc: Html(subst(&fe.desc.0, "_colour", "")?),
             outline: outline.clone(),
             xform: FaceTransform::from_group(&group.d)?,
             svgd: default(),
-          }))
+          })))
         },
       };