chiark / gitweb /
break out list_items
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Sep 2020 12:39:14 +0000 (13:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Sep 2020 12:39:14 +0000 (13:39 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otter.rs

index 1b1e1a6230aa28ec91d2bc0e708f4b4486197f48..1c601f87da6412579b4b46bf775da502bcf01f51 100644 (file)
@@ -313,6 +313,19 @@ impl ConnForGame {
       wat => Err(anyhow!("ListPieces => {:?}", &wat))?,
     }
   }
+
+  #[throws(AE)]
+  fn list_items(&mut self, pat: &shapelib::ItemSpec)
+                -> Vec<shapelib::ItemEnquiryData> {
+    let cmd = MgmtCommand::LibraryListByGlob { glob: pat.clone() };
+    let mut items = match self.cmd(&cmd)? {
+      MgmtResponse::LibraryItems(items) => items,
+      wat => Err(anyhow!("unexpected LibraryListByGlob response: {:?}",
+                         &wat))?,
+    };
+    items.sort();
+    items
+  }
 }
 
 #[throws(E)]
@@ -601,13 +614,7 @@ mod library_list {
       how: MgmtGameUpdateMode::Bulk,
     };
 
-    let cmd = MgmtCommand::LibraryListByGlob { glob: args.pat.clone() };
-    let mut items = match chan.cmd(&cmd)? {
-      MgmtResponse::LibraryItems(items) => items,
-      wat => Err(anyhow!("unexpected LibraryListByGlob response: {:?}",
-                         &wat))?,
-    };
-    items.sort();
+    let items = chan.list_items(&args.pat)?;
     for it in &items {
       println!("{:20}  {}", it.itemname, it.f0desc.0);
     }