use anyhow::Result;
use clap::{Parser, ValueEnum};
use encoding_rs::Encoding;
-use pspp::raw::{Reader, Record, Magic};
+use pspp::raw::{Magic, Reader, Record};
use std::fs::File;
use std::io::BufReader;
use std::path::{Path, PathBuf};
Ok(())
}
-fn dissect(file_name: &Path, max_cases: u64, mode: Mode, encoding: Option<&'static Encoding>) -> Result<()> {
+fn dissect(
+ file_name: &Path,
+ max_cases: u64,
+ mode: Mode,
+ encoding: Option<&'static Encoding>,
+) -> Result<()> {
let reader = File::open(file_name)?;
let reader = BufReader::new(reader);
let mut reader = Reader::new(reader, |warning| println!("{warning}"))?;
match mode {
Mode::Identify => {
- let Record::Header(header) = reader.next().unwrap()? else { unreachable!() };
+ let Record::Header(header) = reader.next().unwrap()? else {
+ unreachable!()
+ };
match header.magic {
Magic::Sav => println!("SPSS System File"),
Magic::Zsav => println!("SPSS System File with Zlib compression"),
Magic::Ebcdic => println!("EBCDIC-encoded SPSS System File"),
}
- return Ok(())
+ return Ok(());
}
Mode::Raw => {
for header in reader {
}
}
}
- Mode::Cooked => {
/*
+ Mode::Decoded => {
let headers: Vec<Record> = reader.collect::<Result<Vec<_>, _>>()?;
- let encoding = encoding_from_headers(&headers, &|e| eprintln!("{e}"))?;
- let (headers, _) = decode(headers, encoding, &|e| eprintln!("{e}"))?;
- for header in headers {
- println!("{header:?}");
}
- */
+*/
+ Mode::Cooked => {
+ /*
+ let headers: Vec<Record> = reader.collect::<Result<Vec<_>, _>>()?;
+ let encoding = encoding_from_headers(&headers, &|e| eprintln!("{e}"))?;
+ let (headers, _) = decode(headers, encoding, &|e| eprintln!("{e}"))?;
+ for header in headers {
+ println!("{header:?}");
+ }
+ */
}
}