From: Ben Pfaff Date: Sun, 6 Apr 2025 15:54:31 +0000 (-0700) Subject: Eliminate label_depth from Axis too. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6acedb2b71b181aa9291360f4549590723f4d8d2;p=pspp Eliminate label_depth from Axis too. --- diff --git a/rust/pspp/src/output/pivot/mod.rs b/rust/pspp/src/output/pivot/mod.rs index 6c17503f66..9f13556f34 100644 --- a/rust/pspp/src/output/pivot/mod.rs +++ b/rust/pspp/src/output/pivot/mod.rs @@ -264,9 +264,6 @@ impl From for Axis3 { pub struct Axis { /// `dimensions[0]` is the innermost dimension. dimensions: Vec, - - /// Sum of `dimensions[*].label_depth`. - label_depth: usize, } pub struct AxisIterator { @@ -309,6 +306,10 @@ impl PivotTable { fn axis_extent(&self, axis: Axis3) -> usize { self.axis_dimensions(axis).map(|d| d.len()).product() } + + fn axis_label_depth(&self, axis: Axis3) -> usize { + self.axis_dimensions(axis).map(|d| d.label_depth()).sum() + } } /// Dimensions. @@ -664,7 +665,6 @@ impl PivotTableBuilder { let mut dimensions = Vec::with_capacity(self.dimensions.len()); let mut axes = EnumMap::from_fn(|_axis| Axis { dimensions: Vec::with_capacity(self.dimensions.len()), - label_depth: 0, }); for (top_index, d) in self.dimensions.into_iter().enumerate() { let axis = d.axis; @@ -675,7 +675,6 @@ impl PivotTableBuilder { }; let d = d.build(axes[axis].dimensions.len(), top_index, label_position); axes[axis].dimensions.push(dimensions.len()); - axes[axis].label_depth += d.label_depth(); dimensions.push(d); } table.dimensions = dimensions; diff --git a/rust/pspp/src/output/pivot/output.rs b/rust/pspp/src/output/pivot/output.rs index 52990c26ba..43707ceddc 100644 --- a/rust/pspp/src/output/pivot/output.rs +++ b/rust/pspp/src/output/pivot/output.rs @@ -162,8 +162,8 @@ impl PivotTable { let row_enumeration = self.enumerate_axis(Axis3::Y, layer_indexes, self.look.omit_empty); let data = Coord2::new(column_enumeration.len(), row_enumeration.len()); let stub = Coord2::new( - self.axes[Axis3::Y].label_depth, - self.axes[Axis3::X].label_depth, + self.axis_label_depth(Axis3::Y), + self.axis_label_depth(Axis3::X), ); let n = EnumMap::from_fn(|axis| data[axis] + stub[axis]).into(); let mut body = Table::new( @@ -377,8 +377,8 @@ fn compose_headings( let v = !h; let h_axis = &pt.axes[h.into()]; let v_axis = &pt.axes[v.into()]; - let v_size = h_axis.label_depth; - let h_ofs = v_axis.label_depth; + let v_size = pt.axis_label_depth(h.into()); + let h_ofs = pt.axis_label_depth(v.into()); let n_columns = column_enumeration.len(); if h_axis.dimensions.is_empty() || n_columns == 0 || v_size == 0 {