a bit more cleanup/refactoring
This commit is contained in:
2 files changed
+20
-11
No files matched your search
+15
-6
@@ -1,11 +1,20 @@
|
||||
use anyhow::Result;
|
||||
use std::fs;
|
||||
use std::{fs, str::FromStr};
|
||||
|
||||
pub fn read_i64s(filename: &str) -> Result<Vec<i64>> {
|
||||
Ok(read_file(filename)?
|
||||
.lines()
|
||||
.map(|s| s.parse::<i64>().expect("i64 parse error"))
|
||||
.collect())
|
||||
pub fn read_data<T: FromStr>(filename: &str) -> Result<Vec<T>> {
|
||||
parse_data(&read_file(filename)?)
|
||||
}
|
||||
|
||||
pub fn parse_data<T: FromStr>(s: &str) -> Result<Vec<T>> {
|
||||
let mut ret = Vec::new();
|
||||
for l in s.lines() {
|
||||
let data = match l.parse::<T>() {
|
||||
Ok(d) => d,
|
||||
Err(_) => panic!("parse error"),
|
||||
};
|
||||
ret.push(data);
|
||||
}
|
||||
Ok(ret)
|
||||
}
|
||||
|
||||
pub fn read_file(filename: &str) -> Result<String> {
|
||||
|
||||
Reference in new issue
Block a user