1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::{
	fs::File,
	io::{prelude::*, BufReader},
	path::Path, process
};

use crate::errors;

pub fn from_file(filepath: impl AsRef<Path>) -> Vec<String> {
	let filepath = filepath.as_ref();
	let open = match File::open(filepath) {
		Ok(file) => file,
		Err(err) => {
			errors::show(format!("Open '{}': {}.", filepath.display(), err));
			process::exit(1)
		}
	};
	let buf = BufReader::new(open);

	buf.lines().map(|l| l.unwrap_or_else(|err| {
		errors::show(format!("Open '{}': {}.", filepath.display(), err));
		process::exit(1)
	})).collect()
}