use std::{
fs::File,
io::{BufRead, BufReader},
path::Path
};
#[derive(Default, Clone)]
pub struct SourceAddresses {
pub range: Vec<String>
}
pub fn is_src_valid(addresses: &SourceAddresses, src: &String) -> bool {
match addresses.range.binary_search(src) {
Ok(_) => return true,
Err(_) => return false
}
}
impl SourceAddresses {
pub fn new(path: &str) -> Option<SourceAddresses> {
let file = match File::open(Path::new(path)) {
Ok(s) => s,
Err(e) => { println!("Error: {}", e); return None; }
};
let reader = BufReader::new(&file);
let mut lines: Vec<_> = reader.lines().collect::<Result<_, _>>().unwrap();
lines.sort();
Some(SourceAddresses {
range: lines
})
}
}