cleanup
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 2 Aug 2025 16:49:06 +0000 (09:49 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 2 Aug 2025 16:49:06 +0000 (09:49 -0700)
rust/pspp/src/endian.rs
rust/pspp/src/format/parse.rs
rust/pspp/src/sys/raw.rs
rust/pspp/src/sys/raw/records.rs

index b52d66d84e51a2669ae9c043e43ce5c0021d8c34..906b23ba611ca5608760d7458d113e1c693b7718 100644 (file)
@@ -1,3 +1,5 @@
+//! Converting big- and little-endian `[u8]` arrays to and from primitive types.
+
 // PSPP - a program for statistical analysis.
 // Copyright (C) 2025 Free Software Foundation, Inc.
 //
@@ -16,6 +18,7 @@
 
 use binrw::Endian;
 
+/// Converts a primitive type into a big- or little-endian `[u8]` array.
 pub trait ToBytes<T, const N: usize> {
     fn to_bytes(self, value: T) -> [u8; N];
 }
@@ -73,13 +76,12 @@ impl ToBytes<f64, 8> for Endian {
     }
 }
 
-/// Parses an `N`-byte array in one of the supported formats into native format
-/// as type `T`.
-pub trait Parse<T, const N: usize> {
+/// Parses a `[u8]` array as a big- or little-endian primitive type.
+pub trait FromBytes<T, const N: usize> {
     /// Given 'bytes', returns `T`.
     fn parse(self, bytes: [u8; N]) -> T;
 }
-impl Parse<u64, 8> for Endian {
+impl FromBytes<u64, 8> for Endian {
     fn parse(self, bytes: [u8; 8]) -> u64 {
         match self {
             Endian::Big => u64::from_be_bytes(bytes),
@@ -87,7 +89,7 @@ impl Parse<u64, 8> for Endian {
         }
     }
 }
-impl Parse<u32, 4> for Endian {
+impl FromBytes<u32, 4> for Endian {
     fn parse(self, bytes: [u8; 4]) -> u32 {
         match self {
             Endian::Big => u32::from_be_bytes(bytes),
@@ -95,7 +97,7 @@ impl Parse<u32, 4> for Endian {
         }
     }
 }
-impl Parse<u16, 2> for Endian {
+impl FromBytes<u16, 2> for Endian {
     fn parse(self, bytes: [u8; 2]) -> u16 {
         match self {
             Endian::Big => u16::from_be_bytes(bytes),
@@ -103,7 +105,7 @@ impl Parse<u16, 2> for Endian {
         }
     }
 }
-impl Parse<u8, 1> for Endian {
+impl FromBytes<u8, 1> for Endian {
     fn parse(self, bytes: [u8; 1]) -> u8 {
         match self {
             Endian::Big => u8::from_be_bytes(bytes),
@@ -111,7 +113,7 @@ impl Parse<u8, 1> for Endian {
         }
     }
 }
-impl Parse<i64, 8> for Endian {
+impl FromBytes<i64, 8> for Endian {
     fn parse(self, bytes: [u8; 8]) -> i64 {
         match self {
             Endian::Big => i64::from_be_bytes(bytes),
@@ -119,7 +121,7 @@ impl Parse<i64, 8> for Endian {
         }
     }
 }
-impl Parse<i32, 4> for Endian {
+impl FromBytes<i32, 4> for Endian {
     fn parse(self, bytes: [u8; 4]) -> i32 {
         match self {
             Endian::Big => i32::from_be_bytes(bytes),
@@ -127,7 +129,7 @@ impl Parse<i32, 4> for Endian {
         }
     }
 }
-impl Parse<i16, 2> for Endian {
+impl FromBytes<i16, 2> for Endian {
     fn parse(self, bytes: [u8; 2]) -> i16 {
         match self {
             Endian::Big => i16::from_be_bytes(bytes),
@@ -135,7 +137,7 @@ impl Parse<i16, 2> for Endian {
         }
     }
 }
-impl Parse<i8, 1> for Endian {
+impl FromBytes<i8, 1> for Endian {
     fn parse(self, bytes: [u8; 1]) -> i8 {
         match self {
             Endian::Big => i8::from_be_bytes(bytes),
@@ -143,7 +145,7 @@ impl Parse<i8, 1> for Endian {
         }
     }
 }
-impl Parse<f64, 8> for Endian {
+impl FromBytes<f64, 8> for Endian {
     fn parse(self, bytes: [u8; 8]) -> f64 {
         match self {
             Endian::Big => f64::from_be_bytes(bytes),
@@ -151,13 +153,13 @@ impl Parse<f64, 8> for Endian {
         }
     }
 }
-impl Parse<Option<f64>, 8> for Endian {
+impl FromBytes<Option<f64>, 8> for Endian {
     fn parse(self, bytes: [u8; 8]) -> Option<f64> {
         let number: f64 = self.parse(bytes);
         (number != -f64::MAX).then_some(number)
     }
 }
-impl Parse<f32, 4> for Endian {
+impl FromBytes<f32, 4> for Endian {
     fn parse(self, bytes: [u8; 4]) -> f32 {
         match self {
             Endian::Big => f32::from_be_bytes(bytes),
@@ -165,7 +167,7 @@ impl Parse<f32, 4> for Endian {
         }
     }
 }
-impl Parse<Option<f32>, 4> for Endian {
+impl FromBytes<Option<f32>, 4> for Endian {
     fn parse(self, bytes: [u8; 4]) -> Option<f32> {
         let number: f32 = self.parse(bytes);
         (number != -f32::MAX).then_some(number)
index a43e59bb544c96e3537f0dc655c523785eddeab8..3e5d257a6ea585b1cba56f5f3367872a11768b9b 100644 (file)
@@ -17,7 +17,7 @@
 use crate::{
     calendar::{calendar_gregorian_to_offset, DateError},
     data::{ByteString, Datum, EncodedString, OwnedDatum, RawString, WithEncoding},
-    endian::Parse,
+    endian::FromBytes,
     format::{DateTemplate, Decimals, Settings, TemplateItem, Type},
     settings::{EndianSettings, Settings as PsppSettings},
 };
index 14410ee03082c8a47ce19803955d0fe0dd4fc005..9b88153a8fa00e246284932b85394cd6391d5a8f 100644 (file)
@@ -22,7 +22,7 @@
 use crate::{
     data::{ByteStr, ByteString, Datum, RawCase},
     dictionary::{VarType, VarWidth},
-    endian::{Parse, ToBytes},
+    endian::{FromBytes, ToBytes},
     identifier::{Error as IdError, Identifier},
     sys::{
         encoding::{default_encoding, get_encoding, Error as EncodingError},
index bd91fc7b3b06e02d0d33aaf6d4ee5eb4999d9a31..8753eaa2a90472c7364b79081401f318abb8bb1a 100644 (file)
@@ -17,7 +17,7 @@ use crate::{
         Alignment, Attributes, CategoryLabels, Measure, MissingValueRange, MissingValues,
         MissingValuesError, VarType, VarWidth,
     },
-    endian::{Parse},
+    endian::{FromBytes},
     format::{DisplayPlainF64, Format, Type},
     identifier::{Error as IdError, Identifier},
     sys::{