use std::{
fs::File,
io::{BufRead, BufReader, Lines, Result},
path::Path,
};
pub fn read_ansi<P>(filename: P) -> Result<Lines<BufReader<File>>>
where
P: AsRef<Path>,
{
let file = File::open(filename)?;
Ok(BufReader::new(file).lines())
}
pub fn parse_art(filename: &str, width: usize) -> Result<Vec<String>> {
let mut linevec = Vec::new();
read_ansi(filename).and_then(|lines| {
for line in lines {
let line = line?;
if !line.starts_with("?>=") {
linevec.push(
String::from(line)
.chars()
.into_iter()
.take(width)
.collect::<String>() + "\n",
);
}
}
Ok(())
})?;
Ok(linevec)
}