initial commit
This commit is contained in:
55
build.rs
Normal file
55
build.rs
Normal file
@@ -0,0 +1,55 @@
|
||||
use std::env;
|
||||
use std::io::{BufWriter, Write};
|
||||
use std::path::Path;
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let path = Path::new(&env::var("OUT_DIR").unwrap()).join("capcodes.rs");
|
||||
let mut file = BufWriter::new(std::fs::File::create(&path).unwrap());
|
||||
|
||||
let mut map = phf_codegen::Map::new();
|
||||
|
||||
let capcodelijst = std::fs::read_to_string("./capcodelijst.csv")?;
|
||||
|
||||
let mut codes = vec![];
|
||||
|
||||
for line in capcodelijst.lines() {
|
||||
let capcode = line.split(";").next().unwrap_or_default().replace('"', "");
|
||||
if !codes.contains(&capcode) {
|
||||
codes.push(capcode.clone());
|
||||
map.entry(capcode, &parse(line)?);
|
||||
}
|
||||
}
|
||||
|
||||
write!(
|
||||
&mut file,
|
||||
"static CAPCODES: phf::Map<&'static str, CapCode> = {}",
|
||||
map.build()
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
writeln!(&mut file, ";").unwrap();
|
||||
|
||||
println!("cargo::rerun-if-changed=capcodelijst.csv");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn parse(s: &str) -> Result<String, Box<dyn std::error::Error>> {
|
||||
let mut parts = s.split(';');
|
||||
|
||||
let capcode = parts.next().unwrap_or_default().replace('"', "");
|
||||
let service = parts.next().unwrap_or_default().replace('"', "");
|
||||
let region = parts.next().unwrap_or_default().replace('"', "");
|
||||
let location = parts.next().unwrap_or_default().replace('"', "");
|
||||
let description = parts.next().unwrap_or_default().replace('"', "");
|
||||
// "0100005";"Brandweer";"Amsterdam-Amstelland";"Aalsmeer";"Officier van Dienst Aalsmeer/UitHoorn";""
|
||||
|
||||
Ok(format!(
|
||||
r#"CapCode {{
|
||||
capcode: "{capcode}",
|
||||
service: "{service}",
|
||||
region: "{region}",
|
||||
location: "{location}",
|
||||
description: "{description}",
|
||||
}}"#
|
||||
))
|
||||
}
|
Reference in New Issue
Block a user