1use std::{
4 fs::File,
5 io::{BufRead, BufReader, Lines},
6 path::Path,
7};
8
9use crate::error::ParserError;
10
11#[inline]
13pub fn get_lines<P>(filename: P) -> Result<Lines<BufReader<File>>, ParserError>
14where
15 P: AsRef<Path>,
16{
17 let file = File::open(&filename)
18 .map_err(|_| ParserError::FileError(filename.as_ref().to_string_lossy().to_string()))?;
19 Ok(BufReader::new(file).lines())
20}
21
22#[inline]
24pub fn get_reader<P>(filename: P) -> Result<BufReader<File>, ParserError>
25where
26 P: AsRef<Path>,
27{
28 let file = File::open(&filename)
29 .map_err(|_| ParserError::FileError(filename.as_ref().to_string_lossy().to_string()))?;
30 Ok(BufReader::new(file))
31}