allowlist_rs/sources/
mod.rs1use std::{
2 fs::File,
3 io::{BufRead, BufReader},
4 path::Path
5};
6
7#[derive(Default, Clone)]
8pub struct SourceAddresses {
9 pub range: Vec<String>
10}
11
12pub fn is_src_valid(addresses: &SourceAddresses, src: &String) -> bool {
13 match addresses.range.binary_search(src) {
14 Ok(_) => return true,
15 Err(_) => return false
16 }
17}
18
19impl SourceAddresses {
20 pub fn new(path: &str) -> Option<SourceAddresses> {
21 let file = match File::open(Path::new(path)) {
22 Ok(s) => s,
23 Err(e) => { println!("Error: {}", e); return None; }
24 };
25 let reader = BufReader::new(&file);
26 let mut lines: Vec<_> = reader.lines().collect::<Result<_, _>>().unwrap();
27 lines.sort();
28 Some(SourceAddresses {
29 range: lines
30 })
31 }
32}