From 16fe30e2176b3e38447030fef9c8d22551ac9203 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 15 May 2025 17:23:02 -0700 Subject: [PATCH] spv writing mostly works --- rust/pspp/src/output/spv.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/rust/pspp/src/output/spv.rs b/rust/pspp/src/output/spv.rs index 11391e5eb3..a5de5e971a 100644 --- a/rust/pspp/src/output/spv.rs +++ b/rust/pspp/src/output/spv.rs @@ -99,6 +99,7 @@ where let mut content = Vec::new(); let mut cursor = Cursor::new(&mut content); pivot_table.write_le(&mut cursor).unwrap(); + println!("{}", content.len()); let table_name = light_table_name(table_id); self.writer @@ -560,7 +561,10 @@ impl BinWrite for Dimension { .write_options(writer, endian, ())?; let mut data_indexes = self.presentation_order.iter().copied(); - self.root.write_le(writer, &mut data_indexes) + for child in &self.root.children { + child.write_le(writer, &mut data_indexes)?; + } + Ok(()) } } @@ -1134,14 +1138,15 @@ impl BinWrite for Value { ) -> binrw::BinResult<()> { match &self.inner { ValueInner::Number(number) => { + let format = SpvFormat { + format: number.format, + honor_small: number.honor_small, + }; if number.var_name.is_some() || number.value_label.is_some() { ( 2u8, ValueMod::new(self), - SpvFormat { - format: number.format, - honor_small: number.honor_small, - }, + format, number.value.unwrap_or(-f64::MAX), SpvString::optional(&number.var_name), SpvString::optional(&number.value_label), @@ -1152,8 +1157,8 @@ impl BinWrite for Value { ( 1u8, ValueMod::new(self), + format, number.value.unwrap_or(-f64::MAX), - Show::as_spv(&number.show), ) .write_options(writer, endian, args)?; } -- 2.30.2