1use std::fs::File;
4use std::io;
5use std::io::{BufRead, BufReader, Write};
6
7pub fn read_file_vec(fname: &str) -> io::Result<Vec<String>> {
10 let file = File::open(&fname)?;
12 let reader = BufReader::new(file);
13 let mut vec: Vec<String> = Vec::new();
14
15 for line in reader.lines() {
17 match line {
18 Ok(line) => vec.push(line),
19 Err(e) => return Err(e),
20 }
21 }
22
23 Ok(vec)
24}
25
26pub fn write_file_vec(fname: &str, contents: &[String], line_ending: &[u8]) -> io::Result<()> {
28 let mut file = File::create(&fname)?;
30
31 for line in contents {
33 file.write_all(line.as_bytes())?;
34 file.write_all(line_ending)?;
35 }
36
37 Ok(())
38}