chiark / gitweb /
shapelib: Promote toplevel as table access
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 4 May 2022 19:47:12 +0000 (20:47 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 4 May 2022 20:56:48 +0000 (21:56 +0100)
We're going to want to get more out of this.

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

index fdd8395267571bc0dd039de2b54d6108fc924b87..6b10f56b4c2de9a88528119d7c00c5bbdcec44fa 100644 (file)
@@ -758,6 +758,8 @@ impl LibrarySource for BuiltinLibrary<'_> {
 pub fn load_catalogue(libname: &str, src: &mut dyn LibrarySource)
                       -> Catalogue {
   let toplevel: toml::Value = src.catalogue_data().parse()?;
+  let toplevel = toplevel
+    .as_table().ok_or_else(|| LLE::ExpectedTable(format!("toplevel")))?;
   let mut l = Catalogue {
     bundle: src.bundle(),
     libname: libname.to_string(),
@@ -765,9 +767,7 @@ pub fn load_catalogue(libname: &str, src: &mut dyn LibrarySource)
     dirname: src.svg_dir(),
   };
   let empty_table = toml::value::Value::Table(default());
-  let groups =
-    toplevel
-    .as_table().ok_or_else(|| LLE::ExpectedTable(format!("toplevel")))?
+  let groups = toplevel
     .get("group").unwrap_or(&empty_table)
     .as_table().ok_or_else(|| LLE::ExpectedTable(format!("group")))?;
   for (groupname, gdefn) in groups {