chiark / gitweb /
shapelib: Break out format_item_name
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 14 May 2022 10:01:44 +0000 (11:01 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 14 May 2022 11:57:40 +0000 (12:57 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/shapelib.rs

index a6b7c9a8dba7d4f1f5cd834b1ff97905837605e9..d4f29abb0b4488ba221fc3c029f7e1ee9b7022ff 100644 (file)
@@ -1130,6 +1130,13 @@ fn subst(before: &str, needle: &'static str, replacement: &str)
     + rhs
 }
 
+#[throws(LibraryLoadError)]
+fn format_item_name(item_prefix: &str, fe: &FileData, item_suffix: &str)
+                    -> GoodItemName {
+  format!("{}{}{}", item_prefix, fe.item_spec, item_suffix)
+    .try_into()?
+}
+
 #[throws(LibraryLoadError)]
 fn process_files_entry(
   src: &mut dyn LibrarySource, l: &mut Catalogue,
@@ -1137,9 +1144,7 @@ fn process_files_entry(
   group: &Arc<GroupData>, shape_calculable: ShapeCalculable,
   fe: FileData
 ) {
-  let item_name = format!("{}{}{}", item_prefix,
-                          fe.item_spec, item_suffix);
-  let item_name: GoodItemName = item_name.try_into()?;
+  let item_name = format_item_name(item_prefix, &fe, item_suffix)?;
 
   let sort = match (sort, fe.extra_fields.get("sort")) {
     ("", None) => None,