long string missing values
[pspp] / rust / src / raw.rs
index db508ae93ffe2c9f42f749163b8a98dd7b04f09b..8722febe887afa1ab73f7e34ab3f526a4b831ac2 100644 (file)
@@ -543,13 +543,13 @@ impl Debug for Value {
 impl Value {
     fn read<R: Read>(r: &mut R, var_type: VarType, endian: Endian) -> Result<Value, IoError> {
         Ok(Self::from_raw(
-            UntypedValue(read_bytes(r)?),
+            &UntypedValue(read_bytes(r)?),
             var_type,
             endian,
         ))
     }
 
-    pub fn from_raw(raw: UntypedValue, var_type: VarType, endian: Endian) -> Value {
+    pub fn from_raw(raw: &UntypedValue, var_type: VarType, endian: Endian) -> Value {
         match var_type {
             VarType::String => Value::String(UnencodedStr(raw.0)),
             VarType::Numeric => {
@@ -579,7 +579,7 @@ impl Value {
                     });
                 }
             };
-            values.push(Value::from_raw(UntypedValue(raw), var_type, endian));
+            values.push(Value::from_raw(&UntypedValue(raw), var_type, endian));
         }
         Ok(Some(values))
     }
@@ -630,7 +630,7 @@ impl Value {
                         }
                     }
                     253 => {
-                        break Value::from_raw(UntypedValue(read_bytes(reader)?), var_type, endian)
+                        break Value::from_raw(&UntypedValue(read_bytes(reader)?), var_type, endian)
                     }
                     254 => match var_type {
                         VarType::String => break Value::String(UnencodedStr(*b"        ")), // XXX EBCDIC
@@ -1410,7 +1410,7 @@ pub struct LongStringMissingValues {
 }
 
 #[derive(Clone, Debug)]
-pub struct LongStringMissingValueSet(Vec<LongStringMissingValues>);
+pub struct LongStringMissingValueSet(pub Vec<LongStringMissingValues>);
 
 impl ExtensionRecord for LongStringMissingValueSet {
     const SUBTYPE: u32 = 22;