remove csv crate
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 5 Jan 2025 16:29:28 +0000 (08:29 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 5 Jan 2025 16:29:28 +0000 (08:29 -0800)
rust/pspp/src/output/csv.rs
rust/pspp/src/output/pivot/mod.rs
rust/pspp/src/output/pivot/output.rs

index 61157b8385e17890309586d44448cf13be0380ae..93c45b53382728e60ac708b926794ad20a53effb 100644 (file)
@@ -1,4 +1,4 @@
-use std::{borrow::Cow, fmt::Display, fs::File, io::Write, sync::Arc};
+use std::{borrow::Cow, fmt::Display, fs::File, io::{Error, Write}, sync::Arc};
 
 use crate::output::pivot::Coord2;
 
@@ -82,7 +82,7 @@ impl CsvDriver {
         self.n_items += 1;
     }
 
-    fn output_table_layer(&mut self, pt: &PivotTable, layer: &[usize]) -> Result<(), csv::Error> {
+    fn output_table_layer(&mut self, pt: &PivotTable, layer: &[usize]) -> Result<(), Error> {
         let output = pt.output(layer, true);
         self.start_item();
 
@@ -99,7 +99,7 @@ impl CsvDriver {
         pivot_table: &PivotTable,
         table: Option<&Table>,
         leader: Option<&str>,
-    ) -> Result<(), csv::Error> {
+    ) -> Result<(), Error> {
         let Some(table) = table else {
             return Ok(());
         };
@@ -107,7 +107,7 @@ impl CsvDriver {
         for y in 0..table.n.y() {
             for x in 0..table.n.x() {
                 if x > 0 {
-                    write!(&mut self.file, "{}", self.options.delimiter as char).unwrap();
+                    write!(&mut self.file, "{}", self.options.delimiter as char)?;
                 }
 
                 let coord = Coord2::new(x, y);
@@ -119,11 +119,11 @@ impl CsvDriver {
                             Some(leader) if x == 0 && y == 0 => format!("{leader}: {display}"),
                             _ => display.to_string(),
                         };
-                        write!(&mut self.file, "{}", CsvField::new(&s, self.options)).unwrap();
+                        write!(&mut self.file, "{}", CsvField::new(&s, self.options))?;
                     }
                 }
             }
-            writeln!(&mut self.file).unwrap();
+            writeln!(&mut self.file)?;
         }
 
         Ok(())
index 11a1c22b3280ecfcb5f04509efc55da21ff4137c..03d4331d6310711df18efd6727794499ad77c294 100644 (file)
@@ -238,7 +238,7 @@ impl Axis3 {
 #[derive(Clone, Debug, Default)]
 pub struct Axis {
     /// `dimensions[0]` is the innermost dimension.
-    dimensions: Vec<Dimension>,
+    dimensions: Vec<Arc<Dimension>>,
 
     /// The number of rows or columns along the axis, that is, the product of
     /// `dimensions[*].len()`.  It is 0 if any dimension has 0 leaves.
@@ -859,7 +859,7 @@ pub struct PivotTable {
     corner_text: Option<Value>,
     caption: Option<Value>,
     notes: Option<String>,
-    dimensions: Vec<Dimension>,
+    dimensions: Vec<Arc<Dimension>>,
     axes: EnumMap<Axis3, Axis>,
     cells: HashMap<usize, Value>,
 }
index 0b2d42806eb78bd1860b868006b566a4d618bffc..59bc362074b9ff45cedd46c95fe30782f3b418f5 100644 (file)
@@ -295,7 +295,7 @@ impl PivotTable {
         }
     }
 
-    fn nonempty_layer_dimensions(&self) -> impl Iterator<Item = &Dimension> {
+    fn nonempty_layer_dimensions(&self) -> impl Iterator<Item = &Arc<Dimension>> {
         self.axes[Axis3::Z]
             .dimensions
             .iter()