work on character encoding
[pspp] / rust / src / cooked.rs
index 9f6f0101b0ce51535221779b362008edcd311a94..3fac1840638f1eff945ac722d98c0a40d83d7241 100644 (file)
@@ -4,7 +4,7 @@ use crate::{
     endian::Endian,
     format::{Error as FormatError, Spec, UncheckedSpec},
     identifier::{Error as IdError, Identifier},
-    raw::{self, MissingValues, UnencodedStr, VarType},
+    raw::{self, MissingValues, UnencodedStr, VarType}, encoding::get_encoding,
 };
 use chrono::{NaiveDate, NaiveDateTime, NaiveTime};
 use encoding_rs::{DecoderResult, Encoding};
@@ -187,7 +187,7 @@ pub struct Decoder {
     n_generated_names: usize,
 }
 
-pub fn decode<T>(headers: Vec<raw::Record>) -> Vec<Record> {
+pub fn decode<T>(headers: Vec<raw::Record>, warn: &impl Fn(Error)) -> Vec<Record> {
     let encoding = headers.iter().find_map(|rec| {
         if let raw::Record::Encoding(ref e) = rec {
             Some(e.0.as_str())
@@ -202,7 +202,10 @@ pub fn decode<T>(headers: Vec<raw::Record>) -> Vec<Record> {
             None
         }
     });
-    
+    let encoding = get_encoding(encoding, character_code)
+
+    let decoder = Decoder {
+    };
 
     Vec::new()
 }