chiark / gitweb /
otterlib: Sort items in preview
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 12 Jan 2021 19:20:17 +0000 (19:20 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 12 Jan 2021 20:18:59 +0000 (20:18 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otterlib.rs

index 63c024c9ef8816fc81b2c77e8097e87b0d036680..9e8a246b854ca7c5a0b69d84e33cb7fb2b2b53a0 100644 (file)
@@ -84,7 +84,7 @@ fn preview(items: Vec<ItemForOutput>) {
     }
   }
 
-  let pieces : Vec<Prep> = items.into_iter().map(|it| {
+  let mut pieces : Vec<Prep> = items.into_iter().map(|it| {
     let spec = ItemSpec { lib: it.0, item: it.1.itemname };
     (||{
       let pc = spec.clone().load().context("load")?;
@@ -109,6 +109,9 @@ fn preview(items: Vec<ItemForOutput>) {
     })().with_context(|| format!("{:?}", &spec))
   }).collect::<Result<Vec<_>,_>>()?;
 
+  // clones as a bodge for https://github.com/rust-lang/rust/issues/34162
+  pieces.sort_by_key(|p| (p.spec.item.clone(), p.spec.lib.clone()));
+                     
   let max_facecols = pieces.iter().map(|s| s.face_cols()).max().unwrap_or(1);
   let max_uos = pieces.iter().map(|s| s.uos.len()).max().unwrap_or(0);