From: Ben Pfaff Date: Fri, 4 Apr 2025 20:20:41 +0000 (-0700) Subject: work on table rendering X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7e6366387c6d50e070660f23c64e6af4a99e53c;p=pspp work on table rendering --- diff --git a/rust/pspp/src/output/pivot/mod.rs b/rust/pspp/src/output/pivot/mod.rs index 6f55a81c25..f5350aa1b9 100644 --- a/rust/pspp/src/output/pivot/mod.rs +++ b/rust/pspp/src/output/pivot/mod.rs @@ -982,11 +982,12 @@ impl Look { } #[derive(Copy, Clone, Debug, Default, Deserialize, PartialEq, Eq)] -#[serde(rename_all = "camelCase")] pub enum RowLabelPosition { + #[serde(rename = "nested")] Nested, #[default] + #[serde(rename = "inCorner")] Corner, } diff --git a/rust/pspp/src/output/pivot/output.rs b/rust/pspp/src/output/pivot/output.rs index 14d6ccaafb..868bb81df8 100644 --- a/rust/pspp/src/output/pivot/output.rs +++ b/rust/pspp/src/output/pivot/output.rs @@ -163,13 +163,7 @@ impl PivotTable { pub fn output_body(&self, layer_indexes: &[usize], printing: bool) -> Table { let column_enumeration = self.enumerate_axis(Axis3::X, layer_indexes, self.look.omit_empty); - for column in column_enumeration.iter() { - println!("column {column:?}"); - } let row_enumeration = self.enumerate_axis(Axis3::Y, layer_indexes, self.look.omit_empty); - for row in row_enumeration.iter() { - println!("row {row:?}"); - } let data = Coord2::new(column_enumeration.len(), row_enumeration.len()); let stub = Coord2::new( self.axes[Axis3::Y].label_depth, @@ -369,7 +363,7 @@ fn find_category<'a>( Some(c) } -/// Fills row or column headings into T. +/// Fills row or column headings into `table`. /// /// This function uses terminology and variable names for column headings, but /// it also applies to row headings because it uses variables for the diff --git a/rust/pspp/src/output/render.rs b/rust/pspp/src/output/render.rs index 546d3842be..c02a385dff 100644 --- a/rust/pspp/src/output/render.rs +++ b/rust/pspp/src/output/render.rs @@ -373,11 +373,12 @@ impl Page { fn new(table: Arc, device: &dyn Device, min_width: usize, look: &Look) -> Self { use Axis2::*; + println!("{table:#?}"); let n = table.n.clone(); // Figure out rule widths. let rules = EnumMap::from_fn(|axis| { - (0..n[axis]) + (0..=n[axis]) .map(|z| measure_rule(&*device, &*table, axis, z)) .collect::>() }); @@ -1064,8 +1065,11 @@ fn distribute_spanned_width( spanned: &mut [usize], rules: &[usize], ) { + println!("{unspanned:?}"); + println!("{spanned:?}"); + println!("{rules:?}"); let n = unspanned.len(); - debug_assert!(n >= 2); + debug_assert!(n >= 1); debug_assert_eq!(spanned.len(), n); debug_assert_eq!(rules.len(), n + 1);