cleanup
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 2 Jan 2026 18:08:24 +0000 (10:08 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 2 Jan 2026 18:08:24 +0000 (10:08 -0800)
rust/pspp/src/spv/read/legacy_xml.rs

index daecb990c6bd8dc8753b7e5bfc85db132dd1c664..c5bc81fa8b3ad7f2008b133eebabc6dae1c57a62 100644 (file)
@@ -524,12 +524,12 @@ impl Visualization {
             styles: &HashMap<&str, &Style>,
             a: Axis3,
             footnotes: &pivot::Footnotes,
-            level_ofs: usize,
+            level_ofs: &mut usize,
             dims: &mut Vec<Dim<'b>>,
         ) -> Vec<&'b Series> {
             let variables = variables
                 .into_iter()
-                .zip(level_ofs..)
+                .zip(*level_ofs..)
                 .map(|(variable_name, level)| {
                     series
                         .get(variable_name)
@@ -537,6 +537,7 @@ impl Visualization {
                         .map(|s| (s, level))
                 })
                 .collect::<Vec<_>>();
+            *level_ofs += variables.len();
             let mut dim_vars = Vec::new();
             let mut categorical_vars = Vec::new();
             for var in variables {
@@ -563,20 +564,18 @@ impl Visualization {
 
         let mut dims = Vec::new();
         let mut level_ofs = 1;
-        let mut dim_series = EnumMap::default();
-        for (axis, dimension) in graph.faceting.dimensions() {
-            dim_series[axis] = decode_dimensions(
+        let dim_series = graph.faceting.dimensions().map(|axis, dimension| {
+            decode_dimensions(
                 dimension.iter().copied(),
                 &series,
                 &axes,
                 &styles,
                 axis,
                 &footnotes,
-                level_ofs,
+                &mut level_ofs,
                 &mut dims,
-            );
-            level_ofs += dimension.len();
-        }
+            )
+        });
 
         let current_layer = dim_series[Axis3::Z]
             .iter()
@@ -593,14 +592,14 @@ impl Visualization {
             })
             .collect::<Vec<_>>();
 
-        let mut coords = Vec::with_capacity(dims.len());
-        let (cell_formats, format_map) = graph.interval.labeling.decode_format_map(&series);
         let cell_footnotes = graph
             .interval
             .footnotes()
             .and_then(|footnotes| series.get(footnotes.variable.as_str()));
         let mut data = HashMap::new();
         if let Some(cell) = series.get("cell") {
+            let mut coords = Vec::with_capacity(dims.len());
+            let (cell_formats, format_map) = graph.interval.labeling.decode_format_map(&series);
             'outer: for (i, cell) in cell.values.iter().enumerate() {
                 coords.clear();
                 for dim in &dims {