From: Ben Pfaff Date: Sat, 2 Aug 2025 16:45:23 +0000 (-0700) Subject: cleanup X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=508437fc8c01bc874bb624ca38f914df409bc7fa;p=pspp cleanup --- diff --git a/rust/pspp/src/data.rs b/rust/pspp/src/data.rs index 7202479965..70f8b73332 100644 --- a/rust/pspp/src/data.rs +++ b/rust/pspp/src/data.rs @@ -308,9 +308,6 @@ pub use encoded::{Encoded, EncodedString, WithEncoding}; /// A [Datum] that owns its string data (if any). pub type OwnedDatum = Datum>; -/// A [Datum] that borrows its string data (if any). -pub type BorrowedDatum<'a> = Datum>>; - /// The value of a [Variable](crate::dictionary::Variable). /// /// `RawString` is parameterized by its string type, which is either diff --git a/rust/pspp/src/endian.rs b/rust/pspp/src/endian.rs index 07cfe886c8..b52d66d84e 100644 --- a/rust/pspp/src/endian.rs +++ b/rust/pspp/src/endian.rs @@ -14,27 +14,7 @@ // You should have received a copy of the GNU General Public License along with // this program. If not, see . -use smallvec::SmallVec; - -pub use binrw::Endian; - -pub fn endian_to_smallvec( - endian: Endian, - mut value: u64, - n: usize, -) -> SmallVec<[u8; N]> { - debug_assert!(n <= 8); - let mut vec = SmallVec::new(); - value <<= 8 * (8 - n); - for _ in 0..n { - vec.push((value >> 56) as u8); - value <<= 8; - } - if endian == Endian::Little { - vec.reverse(); - } - vec -} +use binrw::Endian; pub trait ToBytes { fn to_bytes(self, value: T) -> [u8; N]; diff --git a/rust/pspp/src/format/display/mod.rs b/rust/pspp/src/format/display/mod.rs index af86b33889..4d268e1e95 100644 --- a/rust/pspp/src/format/display/mod.rs +++ b/rust/pspp/src/format/display/mod.rs @@ -21,6 +21,7 @@ use std::{ str::from_utf8_unchecked, }; +use binrw::Endian; use chrono::{Datelike, NaiveDate}; use encoding_rs::{Encoding, UTF_8}; use libm::frexp; @@ -30,7 +31,7 @@ use smallvec::{Array, SmallVec}; use crate::{ calendar::{calendar_offset_to_gregorian, day_of_year, month_name, short_month_name}, data::{ByteStr, Datum, EncodedString, QuotedDatum, WithEncoding}, - endian::{endian_to_smallvec, ToBytes}, + endian::ToBytes, format::{Category, DateTemplate, Decimal, Format, NumberStyle, Settings, TemplateItem, Type}, settings::{EndianSettings, Settings as PsppSettings}, }; @@ -1147,3 +1148,21 @@ where } } } + +pub fn endian_to_smallvec( + endian: Endian, + mut value: u64, + n: usize, +) -> SmallVec<[u8; N]> { + debug_assert!(n <= 8); + let mut vec = SmallVec::new(); + value <<= 8 * (8 - n); + for _ in 0..n { + vec.push((value >> 56) as u8); + value <<= 8; + } + if endian == Endian::Little { + vec.reverse(); + } + vec +} diff --git a/rust/pspp/src/format/display/test.rs b/rust/pspp/src/format/display/test.rs index 6eefc4ffd2..9ddd3047f2 100644 --- a/rust/pspp/src/format/display/test.rs +++ b/rust/pspp/src/format/display/test.rs @@ -16,7 +16,7 @@ use std::{fmt::Write, fs::File, io::BufRead, path::Path}; -use binrw::io::BufReader; +use binrw::{io::BufReader, Endian}; use encoding_rs::UTF_8; use itertools::Itertools; use smallstr::SmallString; @@ -24,7 +24,6 @@ use smallvec::SmallVec; use crate::{ data::{ByteString, Datum, WithEncoding}, - endian::Endian, format::{AbstractFormat, Epoch, Format, Settings, Type, UncheckedFormat, CC}, lex::{scan::StringScanner, segment::Syntax, Punct, Token}, settings::EndianSettings, diff --git a/rust/pspp/src/format/parse.rs b/rust/pspp/src/format/parse.rs index b97e280ba9..a43e59bb54 100644 --- a/rust/pspp/src/format/parse.rs +++ b/rust/pspp/src/format/parse.rs @@ -17,10 +17,11 @@ use crate::{ calendar::{calendar_gregorian_to_offset, DateError}, data::{ByteString, Datum, EncodedString, OwnedDatum, RawString, WithEncoding}, - endian::{Endian, Parse}, + endian::Parse, format::{DateTemplate, Decimals, Settings, TemplateItem, Type}, settings::{EndianSettings, Settings as PsppSettings}, }; +use binrw::Endian; use encoding_rs::Encoding; use smallstr::SmallString; use std::{ @@ -916,13 +917,13 @@ mod test { path::Path, }; + use binrw::Endian; use encoding_rs::UTF_8; use rand::random; use crate::{ calendar::{days_in_month, is_leap_year}, data::{ByteStr, Datum, EncodedString, OwnedDatum, RawString}, - endian::Endian, format::{ parse::{ParseError, ParseErrorKind, Sign}, Epoch, Format, Settings as FormatSettings, Type, diff --git a/rust/pspp/src/settings.rs b/rust/pspp/src/settings.rs index f4678b1236..7c7678c743 100644 --- a/rust/pspp/src/settings.rs +++ b/rust/pspp/src/settings.rs @@ -16,10 +16,10 @@ use std::sync::{Arc, OnceLock}; +use binrw::Endian; use enum_map::EnumMap; use crate::{ - endian::Endian, format::{Format, Settings as FormatSettings}, message::Severity, output::pivot::Look, diff --git a/rust/pspp/src/sys/cooked.rs b/rust/pspp/src/sys/cooked.rs index 24d5c887bd..63fca6744c 100644 --- a/rust/pspp/src/sys/cooked.rs +++ b/rust/pspp/src/sys/cooked.rs @@ -31,7 +31,6 @@ use crate::{ DictIndexMultipleResponseSet, DictIndexVariableSet, Dictionary, InvalidRole, MissingValues, MissingValuesError, MultipleResponseType, VarWidth, Variable, }, - endian::Endian, format::{Error as FormatError, Format, UncheckedFormat}, hexfloat::HexFloat, identifier::{ByIdentifier, Error as IdError, Identifier}, @@ -53,7 +52,7 @@ use crate::{ }, }; use anyhow::{anyhow, Error as AnyError}; -use binrw::{BinRead, BinWrite}; +use binrw::{BinRead, BinWrite, Endian}; use chrono::{NaiveDate, NaiveDateTime, NaiveTime}; use encoding_rs::Encoding; use indexmap::set::MutableValues; diff --git a/rust/pspp/src/sys/raw.rs b/rust/pspp/src/sys/raw.rs index be1f741d48..14410ee030 100644 --- a/rust/pspp/src/sys/raw.rs +++ b/rust/pspp/src/sys/raw.rs @@ -22,7 +22,7 @@ use crate::{ data::{ByteStr, ByteString, Datum, RawCase}, dictionary::{VarType, VarWidth}, - endian::{Endian, Parse, ToBytes}, + endian::{Parse, ToBytes}, identifier::{Error as IdError, Identifier}, sys::{ encoding::{default_encoding, get_encoding, Error as EncodingError}, @@ -43,6 +43,7 @@ use crate::{ }, }; +use binrw::Endian; use encoding_rs::Encoding; use flate2::bufread::ZlibDecoder; use serde::Serialize; diff --git a/rust/pspp/src/sys/raw/records.rs b/rust/pspp/src/sys/raw/records.rs index 296a0ac73e..bd91fc7b3b 100644 --- a/rust/pspp/src/sys/raw/records.rs +++ b/rust/pspp/src/sys/raw/records.rs @@ -17,7 +17,7 @@ use crate::{ Alignment, Attributes, CategoryLabels, Measure, MissingValueRange, MissingValues, MissingValuesError, VarType, VarWidth, }, - endian::{Endian, Parse}, + endian::{Parse}, format::{DisplayPlainF64, Format, Type}, identifier::{Error as IdError, Identifier}, sys::{ @@ -29,7 +29,7 @@ use crate::{ }, }; -use binrw::{binrw, BinRead, BinWrite, Error as BinError}; +use binrw::{binrw, BinRead, BinWrite, Endian, Error as BinError}; use clap::ValueEnum; use encoding_rs::Encoding; use itertools::Itertools; diff --git a/rust/pspp/src/sys/sack.rs b/rust/pspp/src/sys/sack.rs index 7a8108073d..41118e47f6 100644 --- a/rust/pspp/src/sys/sack.rs +++ b/rust/pspp/src/sys/sack.rs @@ -14,6 +14,7 @@ // You should have received a copy of the GNU General Public License along with // this program. If not, see . +use binrw::Endian; use num::{Bounded, Zero}; use ordered_float::OrderedFloat; use std::{ @@ -24,7 +25,7 @@ use std::{ path::{Path, PathBuf}, }; -use crate::endian::{Endian, ToBytes}; +use crate::endian::{ToBytes}; pub type Result = std::result::Result; @@ -573,9 +574,9 @@ impl<'a> Lexer<'a> { #[cfg(test)] mod test { - use crate::endian::Endian; use crate::sys::sack::sack; use anyhow::Result; + use binrw::Endian; use hexplay::HexView; #[test] diff --git a/rust/pspp/src/sys/test.rs b/rust/pspp/src/sys/test.rs index 49f0b94c71..5e1446d0dc 100644 --- a/rust/pspp/src/sys/test.rs +++ b/rust/pspp/src/sys/test.rs @@ -22,14 +22,14 @@ use std::{ sync::Arc, }; +use binrw::Endian; use chrono::{NaiveDate, NaiveDateTime, NaiveTime}; use encoding_rs::UTF_8; use crate::{ crypto::EncryptedFile, - data::{BorrowedDatum, ByteString, Datum}, + data::{ByteString, Datum}, dictionary::{Dictionary, VarWidth, Variable}, - endian::Endian, identifier::Identifier, output::{ pivot::{test::assert_lines_eq, Axis3, Dimension, Group, PivotTable, Value}, @@ -621,7 +621,7 @@ fn write_numeric() { cases .write_case( case.into_iter() - .map(|number| BorrowedDatum::Number(Some(number as f64))), + .map(|number| Datum::<&str>::Number(Some(number as f64))), ) .unwrap(); } @@ -677,7 +677,7 @@ fn write_long_string_value_labels() { cases .write_case( case.into_iter() - .map(|number| BorrowedDatum::Number(Some(number as f64))), + .map(|number| Datum::<&str>::Number(Some(number as f64))), ) .unwrap(); }