clippy
[pspp] / rust / tests / sack.rs
index abb51abe2a2589e3038db0a7733fc3666a1fe12e..49b10e77acc52b8c423f4a09ed60f72d44dd4266 100644 (file)
@@ -67,15 +67,27 @@ struct Args {
 }
 
 fn main() -> Result<()> {
-    let Args { be, le, input_file_name, output_file_name } = Args::parse();
+    let Args {
+        be,
+        le,
+        input_file_name,
+        output_file_name,
+    } = Args::parse();
     let endian = match (be, le) {
         (false, false) | (true, false) => Endian::Big,
         (false, true) => Endian::Little,
         (true, true) => return Err(anyhow!("can't use both `--be` and `--le`")),
     };
-    let input = read_to_string(&input_file_name)?;
-    let input_file_name = input_file_name.to_string_lossy();
-    let output = sack(&input, Some(&input_file_name), endian)?;
-    std::fs::write(&output_file_name, &output)?;
+
+    let input_file_str = input_file_name.to_string_lossy();
+    let input = read_to_string(&input_file_name)
+        .map_err(|err| anyhow!("{input_file_str}: read failed ({err})"))?;
+
+    let output = sack(&input, Some(&input_file_str), endian)?;
+
+    let output_file_str = output_file_name.to_string_lossy();
+    std::fs::write(&output_file_name, output)
+        .map_err(|err| anyhow!("{output_file_str}: write failed ({err})"))?;
+
     Ok(())
 }